Spark applications often directly query external data sources such as relational databases, or files. Spark provides Data Sources APIs for accessing structured data through Spark SQL. Data Sources APIs in both V1 and V2 support optimizations such as Filter push down and Column pruning which are subset of the functionality that can be pushed down to some data sources. We’re proposing to extend Data Sources APIs with join push down (JPD). Join push down significantly improves query performance by reducing the amount of data transfer and exploiting the capabilities of the data sources such as index access.
Join push down design document is available here.