繁体   English   中英

连接来自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表中。

关于如何解决这个问题的任何想法?

提前致谢 !

编辑:对于试图加入Dstream而不是rdd的人们,请看一下: 如何使用Pyspark组合两个Dstream(类似于普通RDD上的.zip)

如果可以依靠两个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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM