关注 spark技术分享,
撸spark源码 玩spark最佳实践

ResolveOrdinalInOrderByAndGroupBy

ResolveOrdinalInOrderByAndGroupBy Logical Resolution Rule

ResolveOrdinalInOrderByAndGroupBy is part of the Resolution fixed-point batch in the standard batches of the Analyzer.

ResolveOrdinalInOrderByAndGroupBy is simply a Catalyst rule for transforming logical plans, i.e. Rule[LogicalPlan].

ResolveOrdinalInOrderByAndGroupBy takes no arguments when created.

Executing Rule — apply Method

Note
apply is part of the Rule Contract to execute (apply) a rule on a TreeNode (e.g. LogicalPlan).

apply walks the logical plan from children up the tree and looks for Sort and Aggregate logical operators with UnresolvedOrdinal leaf expressions (in ordering and grouping expressions, respectively).

For a Sort logical operator with UnresolvedOrdinal expressions, apply replaces all the SortOrder expressions (with UnresolvedOrdinal child expressions) with SortOrder expressions and the expression at the index - 1 position in the output schema of the child logical operator.

For a Aggregate logical operator with UnresolvedOrdinal expressions, apply replaces all the expressions (with UnresolvedOrdinal child expressions) with the expression at the index - 1 position in the aggregate named expressions of the current Aggregate logical operator.

apply throws a AnalysisException (and hence fails an analysis) if the ordinal is outside the range:

赞(0) 打赏
未经允许不得转载:spark技术分享 » ResolveOrdinalInOrderByAndGroupBy
分享到: 更多 (0)

关注公众号:spark技术分享

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏