Spark 中的 GroupByKey 函数有那么糟糕吗? [复制]
Posted
技术标签:
【中文标题】Spark 中的 GroupByKey 函数有那么糟糕吗? [复制]【英文标题】:Is GroupByKey function in Spark that bad? [duplicate] 【发布时间】:2019-01-03 06:40:06 【问题描述】:GroupBy 与 ReduceBy:GroupBy 有那么糟糕吗? 如果 GroupByKey 很糟糕并且它产生与 ReduceByKey 相同的输出,那么为什么 spark 创建了这个函数? 应该有一个用例,其中 GroupByKey 消耗更多的网络带宽和更多的洗牌,但在某些情况下仍然比 ReduceBy 和 AggregateBy 有用。 如果根本没有用,那么这个函数应该在即将发布的版本中从 Spark 中删除???
【问题讨论】:
这个答案对你有帮助吗? 【参考方案1】:是的,是的。看到这个优秀的链接 https://databricks.gitbooks.io/databricks-spark-knowledge-base/content/best_practices/prefer_reducebykey_over_groupbykey.html
ReduceByKey 像 Hadoop Combiner 一样最小化 Shuffle。
也就是说,groupByKey 有时是必要的,但请尝试应用于按摩数据。如链接所示,如果 groupByKey 用于求和,则需要额外的逻辑,这意味着对于 RDD,不应从 Spark 中删除 groupByKey。
对于 Dataframes,有 groupBy,在引擎盖下使用 Catalyst 进行优化。
【讨论】:
以上是关于Spark 中的 GroupByKey 函数有那么糟糕吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Spark中groupByKey() 和 reduceByKey() 和combineByKey()
Spark中groupByKey() 和 reduceByKey() 和combineByKey()
Spark中groupByKey() 和 reduceByKey() 和combineByKey()