第五章_Spark核心编程_Rdd_行动算子_aggregate
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() }