生成/插入Spark RDD中元素的连续数字

时间:2015-09-22 21:16:33

标签: python apache-spark pyspark rdd

假设我有一个RDD加载 lines = sc.textFile('/test.txt')  和RDD就像['apple', 'orange', 'banana']。然后我想生成RDD [(0, 'apple'), (1, 'orange'), (2, 'banana')]

我知道这可以通过indexed_lines = lines.zipWithIndex().map(lambda (x, y): ','.join([str(y), x])).collect()

来完成

但是现在我有了另一个RDD new_lines = ['pineapple','blueberry'],我想union这两个RDD(indexed_lines和new_lines)来构造[(0, 'apple'), (1, 'orange'), (2, 'banana'), (3, 'pineapple'), (4, 'blueberry')],注意到indexed_lines已经存在而且我没有想要更改其中的数据。

我正在尝试zip and union RDD index = sc.parallelize(range(3, 5)) new_indexed_lines = new_lines.zip(index) 但它在这个zip变换中破裂了。

知道为什么它会被打破,以及是否有更聪明的方法来做到这一点?

感谢。

1 个答案:

答案 0 :(得分:2)

这样的事情怎么样?

ActivityManager