语法
Rdd. reduce(func)
源码
def reduce(f : scala.Function2[T, T, T]) : T = { /* compiled code */ }
作用
通过func函数聚集RDD中的所有元素,先聚合分区内数据,再聚合分区间数据。
例子
package com.day1
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object oper {
def main(args: Array[String]): Unit = {
val config:SparkConf = new SparkConf().setMaster("local[*]").setAppName("wordCount")
// 创建上下文对象
val sc = new SparkContext(config)
val rdd = sc.makeRDD(1 to 10,2)
println(rdd.reduce(_+_)) // 55
val rdd2 = sc.makeRDD(Array(("a",1),("b",3),("c",3),("d",5)))
println(rdd2.reduce((x,y)=>(x._1 + y._1,x._2 + y._2))) //("abcd",12)
}
}
输入
1 2 3 4 5
6 7 8 9 10
("a",1),("b",3),("c",3),("d",5)
输出
55
("abcd",12)