Spark 2.x管理与开发-Spark Core-Spark RDD的高级算子(三)aggregateByKey*
Posted on 2020-07-14 11:37 MissRong 阅读(92) 评论(0) 收藏 举报Spark 2.x管理与开发-Spark RDD的高级算子(三)aggregateByKey*
https://spark.apache.org/docs/2.1.0/api/scala/#org.apache.spark.rdd.PairRDDFunctions

类似于aggregate操作,区别:操作的是<Key,Value>的数据类型
举例-1:
局部求最大值,全局求和
将每个分区中的动物最多的个数求和:



结果分析:
分区一:相同Key的对value进行比较,留下较大的那个。剩下:(cat,5) , (mouse,4)
分区二:同理,剩下: (cat,12) , (dog,12) , (mouse,2)
全局操作:相同Key的value进行相加。得出 (dog,12), (cat,17), (mouse,6)
举例-2:
局部求和,全局也求和
将每种动物个数求和:

结果分析:
分区一:组内相加:(cat,7),(mouse,4)
分区二:同理,(cat,12),(dog,12) ,(mouse,2)
全局:(cat,19),(dog,12) ,(mouse,6)
这个例子也可以使用:reduceByKey
scala> pairRDD.reduceByKey(_+_).collect
res73: Array[(String, Int)] = Array((dog,12), (cat,19), (mouse,6))
浙公网安备 33010602011771号