Spark的ReduceByKey和GroupByKey的区别
ReduceByKey和GroupByKey其实和Hadoop的MapReduce中的是否带有combinner一样的道理,无论是ReduceBuKey还是GroupByKey返回的结果都是RDD。
ReduceByKey:
说白了就是带有Commbiner的操作,也就是说ReduceBykey会减少Map端的输出,在Map端输出的时候会将输出结果进行一个计算,最后输出一个合并计算过的Key-Value值。
GroupByKey:
GroupByKey就是我们常说的不带Commbiner的MapReduce计算结果,但是计算速度明显低于ReduceBykey。
Commbiner
Commbiner的好处:在map端先进行一次合并,减少了网络之间的传输,(数据比较大的时候)提高了计算效率,是一个特殊的reduce。
MapReduce相关计算
不带Commbiner的计算过程
带有Commbiner计算过程。