org.apache.spark.sql.cassandra.execution
Map Source Names to Attributes
Every partition key column must be a join key
Checks whether a logical plan contains only Filters, Aliases and CassandraSource Relations
Checks whether there is only a single leaf to this plan and that the leaf is a CassandraSourceRelation.
Checks whether there is only a single leaf to this plan and that the leaf is a CassandraSourceRelation. If it is returns that relation.
Recursively search the dependencies of an RDD for a CassandraTableScanRDD Only searches single dependency chains, on branches chooses left
Recursively search the dependencies of an RDD for a CassandraTableScanRDD Only searches single dependency chains, on branches chooses left
Returns a single logical source for the branch if there is one
Returns the single DataSourceScanExec for the branch if there is one
Checks whether a query plan has either a logical or physical node pulling data from cassandra
Given our target Cassandra based branch, we remove the node which draws data from cassandra (DataSourceScanExec) and replace it with the passed directJoin plan instead.
Given our target Cassandra based branch, we remove the node which draws data from cassandra (DataSourceScanExec) and replace it with the passed directJoin plan instead.
INPUT :
//directJoin: DirectJoinPlan// DirectJoin <-- GetKeyOperations
//plan: Optimized CassandraScanBranch/ OtherOperations <-- CassandraScan
OUTPUT:
OtherOperations <-- DirectJoin <-- GetKeyOperations
The output of (plan) is not changed, but its children should be changed.
This should only be called on optimized Physical Plans
Checks whether the Plan contains only acceptable logical nodes and all partition keys are joined
Currently we will only support Inner, LeftOuter and RightOuter joins Depending on the side of the CassandraTarget different joins are allowed.