将每个分区内的最大值进行求和,初始值为0
scala> val rdd1 = sc.parallelize(Array(1,2,3,4,5,6,7,8,9),2)
rdd1: org.apache.spark.rdd.RDD...全局聚合后的结果为13
将每个分区内的最大值进行求和,初始值为5
scala> val maxSum = rdd1.aggregate(5)(math.max(_, _), _ + _)
maxSum:...Int = 19
总共有两个分区:分区0为1,2,3,4 分区1为5,6,7,8,9 第一个分区最大值为5(初始值),第二个分区最大值为9,全局聚合后的结果还需与初始值相加,结果为14+5=19...注意,此时"0".length的值为1,1再与"23".length即2比较,返回1。同理分区2字符串长度最小值为0,聚合后的结果则为10或01。...> val rdd4 = rdd2.reduceByKey(_ + _)
rdd4: org.apache.spark.rdd.RDD[(Int, String)] = ShuffledRDD[21]