说明
与 aggregate() 类似, 设置初始值,初始值和分区内的数据进行聚合,得到各个分区的结果;然后将初始值和各个分区的结果(分区间的数据)聚合
与 aggregate() 不同:fold算子的 分区内数据操作方式 和 分区间数据操作方式 是 相同的
声明
def fold(zeroValue: T)(op: (T, T) => T): T
形参:
zeroValue:初始化值。在比较大小时,需要有初始值
op:分区内 和 分区间操作
返回值:
- 返回计算结果
例子
val sparConf = new SparkConf().setMaster("local[*]").setAppName("RDD")
val sc = new SparkContext(sparConf)
val rdd:RDD[Int] = sc.makeRDD( List( 1,2,3,4,5,6 ),2 )
val res:Int=rdd.fold(10)(_ + _)
println(res)
sc.stop()