Takeshi Yamamuro created SPARK-12978:
----------------------------------------

             Summary: Skip unnecessary final group-by when input data already 
clustered with group-by keys
                 Key: SPARK-12978
                 URL: https://issues.apache.org/jira/browse/SPARK-12978
             Project: Spark
          Issue Type: Improvement
          Components: SQL
    Affects Versions: 1.6.0
            Reporter: Takeshi Yamamuro


This pr enables the optimization below;

Without opt.:
####
== Physical Plan ==
TungstenAggregate(key=[col0#159], 
functions=[(sum(col1#160),mode=Final,isDistinct=false),(avg(col2#161),mode=Final,isDistinct=false)],
 output=[col0#159,sum(col1)#177,avg(col2)#178])
+- TungstenAggregate(key=[col0#159], 
functions=[(sum(col1#160),mode=Partial,isDistinct=false),(avg(col2#161),mode=Partial,isDistinct=false)],
 output=[col0#159,sum#200,sum#201,count#202L])
   +- TungstenExchange hashpartitioning(col0#159,200), None
      +- InMemoryColumnarTableScan [col0#159,col1#160,col2#161], 
InMemoryRelation [col0#159,col1#160,col2#161], true, 10000, StorageLevel(true, 
true, false, true, 1), ConvertToUnsafe, None

With opt.:
####
== Physical Plan ==
TungstenAggregate(key=[col0#159], 
functions=[(sum(col1#160),mode=Complete,isDistinct=false),(avg(col2#161),mode=Final,isDistinct=false)],
 output=[col0#159,sum(col1)#177,avg(col2)#178])
+- TungstenExchange hashpartitioning(col0#159,200), None
  +- InMemoryColumnarTableScan [col0#159,col1#160,col2#161], InMemoryRelation 
[col0#159,col1#160,col2#161], true, 10000, StorageLevel(true, true, false, 
true, 1), ConvertToUnsafe, None




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to