Spark编程中什么时候应该使用groupByKey API?

2024-02-29

GroupByKey 会遭受数据混洗的困扰。而 GroupByKey 功能可以通过使用 mergeByKey 或 reduceByKey 来实现。那么什么时候应该使用这个 API?有使用案例吗?


组合和减少最终也会进行洗牌,但它们具有更好的内存和速度性能特征,因为它们能够做更多的工作来减少数据量before洗牌。

考虑一下是否必须通过组 RDD[(group, num)] 对数字属性求和。groupByKey会给你 RDD[(group, List[num])] 然后你可以使用手动减少map。洗牌需要移动所有个体num到目标分区/节点以获取该列表 - 许多行正在被洗牌。

Because reduceByKey知道你正在做什么nums(即对它们求和),它可以在洗牌之前对每个单独的分区求和 - 所以每个分区最多有一行group被写入随机分区/节点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark编程中什么时候应该使用groupByKey API? 的相关文章

随机推荐