spark3.0教程:RDD行动算子fold()

说明

与 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()