Apache spark:我们如何将RDD [v]拆分为Map [k,RDD [v]]?

时间:2014-10-20 11:14:10

标签: api apache-spark

groupByKey给了我RDD [key,value]我找不到任何方法将它转换为Map [key,RDD [values]]。 感谢。

SV

1 个答案:

答案 0 :(得分:1)

AFAIK那里没有Spark原语允许你按照那样的键分割RDD。我们正在使用过滤来实现类似的结果。并且在性能方面它必须比实际groupByKey轻得多,因为过滤器不需要随机播放。

val keys = rdd.keys.collect
val dataByKey = keys.map(key => (key, rdd.filter(_._1 == key)).toMap

请注意,键必须放在驱动程序的内存中才能使其正常工作。