reduce

聚集 RDD 中的所有元素,先聚合分区内数据,再聚合分区间数据 先在Executor中聚合,最后在Driver汇总

aggregate

  1. val rdd = sc.makeRDD(List(1,2,3,4),2)
  2. val res = rdd.aggregate(10)(_+_,_+_) // 40

分区内
10+1+2 = 13
10+3+4 = 17
分区间(区别与aggregateByKey)
10+13+17 = 40

最终结果 => 40