[ 
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]

Reply via email to