一、reduceByKey和groupByKey对比
val counts = pairs.reduceByKey(_ + _)
val counts = pairs.groupByKey().map(wordCounts => (wordCounts._1, wordCounts._2.sum))
如果能用reduceByKey,那就用reduceByKey,因为它会在map端,先进行本地combine,可以大大减少要传输到reduce端的数据量,减小网络传输的开销。
只有在reduceByKey处理不了时,才用groupByKey().map()来替代
二、执行原理
1、reduceByKe

2、groupByKey


本文对比了Spark中ReduceByKey与GroupByKey的功能及执行原理。ReduceByKey通过在Map端进行本地Combine操作,减少了数据传输量,降低了网络开销。而GroupByKey则适用于ReduceByKey无法处理的情况。
838

被折叠的 条评论
为什么被折叠?



