scala / spark mapping [String,List [String]]到String对

时间:2015-04-23 09:43:53

标签: scala apache-spark rdd

我有一个结构为RDD:[String A,List(Strings Bs)]的RDD我想映射它以便得到一个RDD:[String A,String B],这样列表中的每个元素都将与字符串A匹配。最有效的方法吗?

我目前正在使用flatMapValues,这是最有效的方法吗? (我有庞大的数据集)

1 个答案:

答案 0 :(得分:1)

rdd.flatMapValues(identity)应该完成工作。

这应该是一种非常有效和简单的方法。 要优化性能,您可以将其与使用mapPartitions的实现进行比较,然后选择两者中的较好者。我不希望出现巨大的差异,因为无论如何都需要创建包装器对象。

rdd.mapPartitions(iter => iter.flatMap(elem => elem._2.map(v => (elem._1,v)))