1.定义
/*
* 1.定义
* def aggregate[U: ClassTag](zeroValue: U)(seqOp: (U, T) => U, combOp: (U, U) => U): U
* seqOp : 分区内聚合函数
* combOp : 分区间聚合函数
* 2.功能
* 分区的数据通过初始值和分区内的数据进行聚合,然后再和初始值进行分区间的数据聚合
* 3.执行流程
* 1. 分区内对元素聚合
* seqOp(zeroValue,e)
* 2. 拉取分区聚合的结果,在Driver聚合
* combOp(zeroValue,par_e)
*
* */
2.示例
object aggregateTest extends App {
val sparkconf: SparkConf = new SparkConf().setMaster("local").setAppName("distinctTest")
val sc: SparkContext = new SparkContext(sparkconf)
private val rdd: RDD[Int] = sc.makeRDD(List(8, 2, 4, 2), 2)
private val result: Int = rdd.aggregate(0)(_ - _, _ - _)
println(result)
sc.stop()
}