在 Python Spark 中连接来自两个不同 RDD 的字符串

Concatenate strings from two different RDD in Python Spark

假设我有 2 个 rdds: 第一个 rdd 由 html 请求的字符串组成:

rdd1 :

serverIP:80 clientIP1 - - [10/Jun/2016:10:47:37 +0200] "GET /path/to/page1 [...]"
serverIP:80 clientIP2 - - [11/Jun/2016:11:25:12 +0200] "GET /path/to/page2 [...]"
...

第二个 rdd 只是整数:

rdd2 :

0.025
0.56
...

我想逐行连接字符串以获得第三个 rdd,如下所示: rdd3 :

serverIP:80 clientIP1 - - [10/Jun/2016:10:47:37 +0200] "GET /path/to/page1 [...]" 0.025
serverIP:80 clientIP2 - - [11/Jun/2016:11:25:12 +0200] "GET /path/to/page2 [...]" 0.56
...

顺便说一句,这个作业是一个流作业。也就是说,我不想以某种 sql table 或其他方式永久存储数据。

知道如何解决这个问题吗?

提前致谢!

编辑: 对于尝试加入 Dstream 而不是 rdd 的人,请看一下:

如果你可以依靠两个 rdd 的序列来匹配你可以使用 zip:

val rdd1 = sc.parallelize(List("a", "b", "c"))
val rdd2 = sc.parallelize(List(1.1, 1.2, 1.3))

val rdd3 = rdd1.zip(rdd2).map({case (s, d) => s + " " + d})

rdd3.collect() foreach println

// a 1.1
// b 1.2
// c 1.3