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是全局聚合函数,将多个分区聚合之后的值在聚合在一起。


浙公网安备 33010602011771号