[
https://issues.apache.org/jira/browse/SPARK-14830?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sean Owen updated SPARK-14830:
------------------------------
Assignee: Dongjoon Hyun
> Add RemoveRepetitionFromGroupExpressions optimizer
> --------------------------------------------------
>
> Key: SPARK-14830
> URL: https://issues.apache.org/jira/browse/SPARK-14830
> Project: Spark
> Issue Type: Improvement
> Components: Optimizer
> Reporter: Dongjoon Hyun
> Assignee: Dongjoon Hyun
> Fix For: 2.0.0
>
>
> This issue aims to optimize `GroupExpressions` by removing repeating
> expressions. **RemoveRepetitionFromGroupExpressions** is added.
> **Before**
> {code}
> scala> sql("select a+1 from values 1,2 T(a) group by a+1, 1+a, A+1,
> 1+A").explain()
> == Physical Plan ==
> WholeStageCodegen
> : +- TungstenAggregate(key=[(a#0 + 1)#6,(1 + a#0)#7,(A#0 + 1)#8,(1 +
> A#0)#9], functions=[], output=[(a + 1)#5])
> : +- INPUT
> +- Exchange hashpartitioning((a#0 + 1)#6, (1 + a#0)#7, (A#0 + 1)#8, (1 +
> A#0)#9, 200), None
> +- WholeStageCodegen
> : +- TungstenAggregate(key=[(a#0 + 1) AS (a#0 + 1)#6,(1 + a#0) AS (1 +
> a#0)#7,(A#0 + 1) AS (A#0 + 1)#8,(1 + A#0) AS (1 + A#0)#9], functions=[],
> output=[(a#0 + 1)#6,(1 + a#0)#7,(A#0 + 1)#8,(1 + A#0)#9])
> : +- INPUT
> +- LocalTableScan [a#0], [[1],[2]]
> {code}
> **After**
> {code}
> scala> sql("select a+1 from values 1,2 T(a) group by a+1, 1+a, A+1,
> 1+A").explain()
> == Physical Plan ==
> WholeStageCodegen
> : +- TungstenAggregate(key=[(a#0 + 1)#6], functions=[], output=[(a + 1)#5])
> : +- INPUT
> +- Exchange hashpartitioning((a#0 + 1)#6, 200), None
> +- WholeStageCodegen
> : +- TungstenAggregate(key=[(a#0 + 1) AS (a#0 + 1)#6], functions=[],
> output=[(a#0 + 1)#6])
> : +- INPUT
> +- LocalTableScan [a#0], [[1],[2]]
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]