比如经过map的数据集是这样的("happy",1,3),("hello",2,6),("happy",3,4)如何通过操作获得("happy",4,5),("hello",2,6),本文从这个角度介绍在...Spark中pairRDD的两种方法groupByKey和reduceByKey
groupByKey
groupByKey对具有相同键的值进行分组,比如pairRDD={(1,2),(3,2),(1,7...因为数据集中可能有大量的键,所以 reduceByKey() 没有被实现为向用户程序返回一个值的行动操作。实际上,它会返回一个由各键和对应键归约出来的结果值组成的新的 RDD。...reduceByKey
rdd.reduceByKey((x,y)=>(x._1+y._1,x._2+y._2))
其中reduceByKey方法是聚合类函数,x相当与当前行,y为下一行,通过这个方法可以把具有相同键的值聚合起来...groupByKey
rdd.groupByKey().mapValue(value=>value.reduce((x,y)=>(x._1+y._1,x._2+y._2)))
对比这两个方法,reduceByKey