Spark常用的算子总结(5)—— groupByKey
按Key进行分组,
输入 List(("A",1),("B",2),("A",2),("B",3))
输出
(B,(2, 3))
(A,(1, 2))
然后对key进行个数统计
# (A,2)
# (B,2)
//省略
val arr = List(("A",1),("B",2),("A",2),("B",3))
val rdd = sc.parallelize(arr)
val groupByKeyRDD = rdd.groupByKey()
groupByKeyRDD.foreach(println)
sc.stop
# (B,CompactBuffer(2, 3))
# (A,CompactBuffer(1, 2))
# 统计key后面的数组汇总元素的个数
scala> groupByKeyRDD.mapValues(x => x.size).foreach(println)
# (A,2)
# (B,2)
reduceByKeyt与groupByKey的区别?
,在对大数据进行复杂计算时,reduceByKey优于groupByKey。