使用两个RDD的值生成新的RDD

时间:2015-10-21 18:28:15

标签: python scala apache-spark pyspark

我有一个文本文件,每行有2个以空格分隔的整数值

假设我有两个RDD。一个具有一对值(x,y),其中x和y是2个整数值。另一个RDD(rdd2 - >(a,b)),它只有一对,带有两个整数值a,b。

rdd1 = textfile.map(lambda line: line.split())
...

我的目标是用rdd2中的相应值减去rdd1中的每个值

结果看起来像

x1-a,y1-b
x2-a,y2-b
x3-a,y3-b
...

我怎样才能实现这个目标

1 个答案:

答案 0 :(得分:1)

如果第二个RDD只包含一个元组,即值(a:Int, b:Int) - 它根本没有意义 - 而-表示减法。这应该做的事情:

val res = rdd2.collect()
val a = res(0)(0)
val b = res(0)(1)
val rdd3 = rdd1.map(tuple => (tuple._1 - a, tuple._2 - b) )