2017-06-08 95 views
1

groupByKey是否會導致整個網絡中所有值的混洗,即使它們已經位於一個分區內,當我們在sparkSQL中通過操作進行分組時,它使用groupbykey還是使用aggregateByKey來獲得性能?GroupbyKey on spark數據集

回答

0

groupByKey如果密鑰全部位於每個分區內,則數據不會混洗。但那將是一種罕見的情況。

groupBysparkSQL中的操作是aggregateByKey,它使其成爲聚合操作。我們可以在groupBysparkSQL之後定義聚合函數。 groupBy只需爲每個組和每個聚合創建一個Aggregation Expressions實例,並遍歷數據並不斷更新這些表達式