spark 相同的key的value聚合成一个

wordcount例子

val conf = new SparkConf().setAppName("GroupAndReduce").setMaster("local")
val sc = new SparkContext(conf)
val words = Array("one", "two", "two", "three", "three", "three")
val wordsRDD = sc.parallelize(words).map(row => (row, 1))
val wordsCountWithGroup = wordsRDD.
groupByKey().  // 其实groupByKey之后下面的 pair._2 已经成了一个value的list
map(pair => (pair._1, pair._2.sum)). // pair._1 和 pair._2 代表 word 和 list(里面都是1)
collect().
foreach(println)

如果是要把string(“abc”)聚合成一个

val conf = new SparkConf().setAppName("GroupAndReduce").setMaster("local")
val sc = new SparkContext(conf)
val words = Array("one", "two", "two", "three", "three", "three")
val wordsRDD = sc.parallelize(words).map(row => (row, "abc"))
val wordsCountWithGroup = wordsRDD.
groupByKey().  
map(pair => {
  val onestr = pair._2.toArray.sorted.mkString("@@@")
  (pair._1, onestr)
collect().
foreach(println)
发布了1132 篇原创文章 · 获赞 196 · 访问量 260万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 创作都市 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览