reduce ,reducebykey算子

reducebykey算子是Transformation 转换算子(虽然和groupbykey函数效果差不多,不过groupbykey是把同一个组的value放到一个compactbuffer里面去,reducebykey是将同组value聚合成一个value)
reducebykey适用(k,v)键值对
他起到的是聚合作用,底层调用的combinebykeyWithclassTag函数,
参数从左到右依次是
1,拿到分区内同一个组的第一个value
2.分区内同一个组的value执行func聚合操作
3.全局执行的func聚合操作
4.分区器

 

reduce算子是action算子

reduce算子适用一元组

reduce将RDD中元素前两个传给输入函数,产生一个新的return值,新产生的return值与RDD中下一个元素(第三个元素)组成两个元素,再被传给输入函数,直到最后只有一个值为止

val c = sc.parallelize(1 to 10)

c.reduce((x, y) => x + y)//结果55

源码里面主要是俩个函数

reducepartition是分区聚合函数,将分区内值聚合到一起

mergeresult是全局聚合函数,将多个分区聚合之后的值在聚合在一起。

posted @ 2021-12-18 20:41  习惯了蓝  阅读(711)  评论(0)    收藏  举报