Spark中的GroupByKey函数不好吗?

时间:2019-01-03 06:40:06

标签: function apache-spark aggregate

GroupBy与ReduceBy:GroupBy不好吗? 如果GroupByKey太糟糕了,并且其结果与ReduceByKey相同,那么为什么spark创建了此函数? 应该有一个用例,其中GroupByKey消耗更多的网络带宽和改组,但在某些情况下仍然比ReduceBy和AggregateBy有用。 如果根本没有用,则应在以后的版本中从Spark删除此功能。

1 个答案:

答案 0 :(得分:0)

是的。看到这个很棒的链接 https://databricks.gitbooks.io/databricks-spark-knowledge-base/content/best_practices/prefer_reducebykey_over_groupbykey.html

ReduceByKey可以像Hadoop Combiner一样使混洗最小化。

也就是说,groupByKey有时是必需的,但是请尝试将其应用于经过处理的数据。如链接所示,如果将groupByKey用于求和,则需要额外的逻辑,这意味着对于RDD,不应从Spark中删除groupByKey。

对于数据框,有groupBy,而Catalyst在后台进行了优化。