Packages

o

org.apache.spark.sql.catalyst.optimizer

NestedColumnAliasing

object NestedColumnAliasing

This aims to handle a nested column aliasing pattern inside the ColumnPruning optimizer rule. If a project or its child references to nested fields, and not all the fields in a nested attribute are used, we can substitute them by alias attributes; then a project of the nested fields as aliases on the children of the child will be created.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. NestedColumnAliasing
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def canPruneGenerator(g: Generator): Boolean

    This is a while-list for pruning nested fields at Generator.

  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. def getAliasSubMap(exprList: Seq[Expression], exclusiveAttrs: Seq[Attribute] = Seq.empty): Option[(Map[ExtractValue, Alias], Map[ExprId, Seq[Alias]])]

    Return two maps in order to replace nested fields to aliases.

    Return two maps in order to replace nested fields to aliases.

    If exclusiveAttrs is given, any nested field accessors of these attributes won't be considered in nested fields aliasing.

    1. ExtractValue -> Alias: A new alias is created for each nested field. 2. ExprId -> Seq[Alias]: A reference attribute has multiple aliases pointing it.

  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def getNewProjectList(projectList: Seq[NamedExpression], nestedFieldToAlias: Map[ExtractValue, Alias]): Seq[NamedExpression]

    Return a replaced project list.

  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. def replaceChildrenWithAliases(plan: LogicalPlan, attrToAliases: Map[ExprId, Seq[Alias]]): LogicalPlan

    Return a plan with new children replaced with aliases.

  19. def replaceToAliases(plan: LogicalPlan, nestedFieldToAlias: Map[ExtractValue, Alias], attrToAliases: Map[ExprId, Seq[Alias]]): LogicalPlan

    Replace nested columns to prune unused nested columns later.

  20. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  21. def toString(): String
    Definition Classes
    AnyRef → Any
  22. def unapply(plan: LogicalPlan): Option[(Map[ExtractValue, Alias], Map[ExprId, Seq[Alias]])]
  23. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped