1.定义
/*
* 1.定义
* def fold(zeroValue: T)(op: (T, T) => T): T
* op : 分区内、分区间聚合函数
* 2.功能
* 分区的数据通过初始值和分区内的数据进行聚合,然后再和初始值进行分区间的数据聚合
* 3.执行流程
* 1. 分区内对元素聚合
* op(zeroValue,e)
* 2. 拉取分区聚合的结果,在Driver聚合
* op(zeroValue,par_e)
*
2.示例
object foldTest 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.fold(0)(_ - _)
println(result)
sc.stop()
}