Packages

package join

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. Protected

Type Members

  1. case class BroadcastIndexJoinExec(left: SparkPlan, right: SparkPlan, streamShape: Expression, indexBuildSide: JoinSide, windowJoinSide: JoinSide, joinType: JoinType, spatialPredicate: SpatialPredicate, extraCondition: Option[Expression] = None, distance: Option[Expression] = None) extends SparkPlan with SedonaBinaryExecNode with TraitJoinQueryBase with Logging with Product with Serializable
  2. case class DistanceJoinExec(left: SparkPlan, right: SparkPlan, leftShape: Expression, rightShape: Expression, distance: Expression, distanceBoundToLeft: Boolean, spatialPredicate: SpatialPredicate, isGeography: Boolean, extraCondition: Option[Expression] = None) extends SparkPlan with SedonaBinaryExecNode with TraitJoinQueryExec with Logging with Product with Serializable

    Distance joins requires matching geometries to be in the same partition, despite not necessarily overlapping.

    Distance joins requires matching geometries to be in the same partition, despite not necessarily overlapping. To create an overlap and guarantee matching geometries end up in the same partition, the left geometry is expanded before partitioning. It's the logical equivalent of:

    select * from a join b on ST_Distance(a.geom, b.geom) <= 1

    becomes

    select * from a join b on ST_Intersects(ST_Envelope(ST_Buffer(a.geom, 1)), b.geom) and ST_Distance(a.geom, b.geom) <= 1

    left

    left side of the join

    right

    right side of the join

    leftShape

    expression for the first argument of spatialPredicate

    rightShape

    expression for the second argument of spatialPredicate

    distance

    - ST_Distance(left, right) <= distance. Distance can be literal or a computation over 'left' or 'right'.

    distanceBoundToLeft

    whether distance expression references attributes from left relation or right relation

    spatialPredicate

    spatial predicate as join condition

    extraCondition

    extra join condition other than spatialPredicate

  3. case class JoinQueryDetection(left: LogicalPlan, right: LogicalPlan, leftShape: Expression, rightShape: Expression, spatialPredicate: SpatialPredicate, isGeography: Boolean, extraCondition: Option[Expression] = None, distance: Option[Expression] = None) extends Product with Serializable
  4. class JoinQueryDetector extends Strategy

    Plans RangeJoinExec for inner joins on spatial relationships ST_Contains(a, b) and ST_Intersects(a, b).

    Plans RangeJoinExec for inner joins on spatial relationships ST_Contains(a, b) and ST_Intersects(a, b).

    Plans DistanceJoinExec for inner joins on spatial relationship ST_Distance(a, b) < r.

    Plans BroadcastIndexJoinExec for inner joins on spatial relationships with a broadcast hint.

  5. sealed trait JoinSide extends AnyRef
  6. case class RangeJoinExec(left: SparkPlan, right: SparkPlan, leftShape: Expression, rightShape: Expression, spatialPredicate: SpatialPredicate, extraCondition: Option[Expression] = None) extends SparkPlan with SedonaBinaryExecNode with TraitJoinQueryExec with Logging with Product with Serializable

    ST_Contains(left, right) - left contains right or ST_Intersects(left, right) - left and right intersect

    ST_Contains(left, right) - left contains right or ST_Intersects(left, right) - left and right intersect

    left

    left side of the join

    right

    right side of the join

    leftShape

    expression for the first argument of spatialPredicate

    rightShape

    expression for the second argument of spatialPredicate

    spatialPredicate

    spatial predicate as join condition

    extraCondition

    extra join condition other than spatialPredicate

  7. case class SpatialIndexExec(child: SparkPlan, shape: Expression, indexType: IndexType, isGeography: Boolean, distance: Option[Expression] = None) extends SparkPlan with SedonaUnaryExecNode with TraitJoinQueryBase with Logging with Product with Serializable
  8. trait TraitJoinQueryBase extends AnyRef
  9. trait TraitJoinQueryExec extends TraitJoinQueryBase

Value Members

  1. case object LeftSide extends JoinSide with Product with Serializable
  2. case object RightSide extends JoinSide with Product with Serializable

Ungrouped