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