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。

 

posted @ 2019-08-11 12:28  SENTIMENT_SONNE  阅读(328)  评论(0编辑  收藏  举报