org.apache.spark.sql.cassandra.execution
CassandraDirectJoinStrategy
Companion class CassandraDirectJoinStrategy
object CassandraDirectJoinStrategy extends Logging with Serializable
- Alphabetic
- By Inheritance
- CassandraDirectJoinStrategy
- Serializable
- Serializable
- Logging
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
aliasMap(aliases: Seq[NamedExpression]): Map[String, ExprId]
Map Source Cassandra Column Names to ExpressionIds referring to them
-
def
allPartitionKeysAreJoined(plan: LogicalPlan, joinKeys: Seq[Expression]): Boolean
Every partition key column must be a join key
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
def
containsSafePlans(plan: LogicalPlan): Boolean
Checks whether a logical plan contains only Filters, Aliases and CassandraSource Relations
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def getAlias(expr: NamedExpression): (String, ExprId)
- def getCassandraScan(plan: LogicalPlan): Option[CassandraScan]
-
def
getCassandraTable(plan: LogicalPlan): Option[CassandraTable]
Checks whether there is only a single leaf to this plan and that the leaf is a CassandraTable.
Checks whether there is only a single leaf to this plan and that the leaf is a CassandraTable. If it is returns that table.
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
getDSV2CassandraRelation(plan: LogicalPlan): Option[DataSourceV2ScanRelation]
Checks whether there is only a single leaf to this plan and that the leaf is a DSV2 Relation Reading from a C* table.
Checks whether there is only a single leaf to this plan and that the leaf is a DSV2 Relation Reading from a C* table. If it is returns that table.
-
def
getScanExec(plan: SparkPlan): Option[BatchScanExec]
Returns the single DataSourceScanExec for the branch if there is one and it scans Cassandra
-
def
hasCassandraChild[T <: QueryPlan[T]](plan: T): Boolean
Checks whether a query plan has either a logical or physical node pulling data from cassandra
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isTraceEnabled(): Boolean
- Attributes
- protected
- Definition Classes
- Logging
-
def
log: Logger
- Attributes
- protected
- Definition Classes
- Logging
-
def
logDebug(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logDebug(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logError(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logError(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logInfo(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logInfo(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logName: String
- Attributes
- protected
- Definition Classes
- Logging
-
def
logTrace(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logTrace(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logWarning(msg: ⇒ String, throwable: Throwable): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
def
logWarning(msg: ⇒ String): Unit
- Attributes
- protected
- Definition Classes
- Logging
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
reorderPlan(plan: SparkPlan, directJoin: CassandraDirectJoinExec, originalOutput: Seq[Attribute]): SparkPlan
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
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
validJoinBranch(plan: LogicalPlan, keys: Seq[Expression]): Boolean
Checks whether the Plan contains only acceptable logical nodes and all partition keys are joined
- def validJoinType(cassandraSide: BuildSide, joinType: JoinType): Boolean
-
val
validJoins: Map[BuildSide, Seq[JoinType]]
Currently we will only support Inner, LeftOuter and RightOuter joins Depending on the side of the CassandraTarget different joins are allowed.
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated @deprecated
- Deprecated
(Since version ) see corresponding Javadoc for more information.