【发布时间】:2016-06-01 23:17:44
【问题描述】:
我想对每个键的值列表进行分组,并且正在做这样的事情:
sc.parallelize(Array(("red", "zero"), ("yellow", "one"), ("red", "two"))).groupByKey().collect.foreach(println)
(red,CompactBuffer(zero, two))
(yellow,CompactBuffer(one))
但我注意到 Databricks 的一篇博文,它建议不要将 groupByKey 用于大型数据集。
有没有办法使用 reduceByKey 实现相同的结果?
我试过了,但它连接了所有值。顺便说一句,就我而言,键和值都是字符串类型。
sc.parallelize(Array(("red", "zero"), ("yellow", "one"), ("red", "two"))).reduceByKey(_ ++ _).collect.foreach(println)
(red,zerotwo)
(yellow,one)
【问题讨论】:
标签: scala hadoop apache-spark mapreduce apache-spark-sql