根据同一rdd

时间:2016-04-05 11:48:01

标签: python pyspark

我是Python spark的新手,所以这个问题可能是基本的。但是,我在这里或谷歌上找不到任何好的答案,所以无论如何我都会问它。

我想在我的rdd中添加一些元素,这取决于我在该rdd上做的一些计算。让我们说我的rdd是命名行并包含一个字符串。我想添加两个数字,它们在文件中分隔在一起。然后在行rdd的末尾添加此总和。

lines = sc.textFile("myFile.txt")
#Splitting the string where there are tabs
linesArr=lines.map(lambda line: line.split("\t"))

现在我想在linesArr中添加两个第一个标签,并在行尾添加结果。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

对于那些可能想知道同样事情的人,我是如何通过一个简单的例子来解决它的:

n=sc.parallelize([(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9)])

m=n.map(lambda x: x[0]+x[1])

z=n.zip(m).map(lambda x: (x[0][0],x[0][1],x[1]))

结果z是:[(1,1,2),(2,2,4),...] 请注意,如果省略地图,结果将是[((1,1),2),((2,2),4),..],在这种情况下我不希望这样。