如何在Spark中将两个RDD [string]合并在一起?

时间:2016-07-07 14:59:34

标签: apache-spark apache-spark-sql

我有两个RDD [string],一个是标签,另一个是功能。他们有相同的线条。我怎样才能逐行合并?

feature: org.apache.spark.rdd.RDD[String]
res127: String = 11,0,7,18
label: org.apache.spark.rdd.RDD[String]
res160: String = 1

他们每个人都有数千行,而我只是放了第一行。 我想要一个新的RDD [String],每行看起来像这样

res: String = 1,11,0,7,18

我尝试了join(),无法完成。

2 个答案:

答案 0 :(得分:0)

你试过使用拉链吗?这将为每个标签和功能提供一个键值对。你可以让他们保持这种风格,以便于访问这两个组件,或者如果需要的话,将它们转换为单个字符串。

另外,如果您只是将标签附加到列表的前面,那么union更合适。这可以使用foreach / filter作为前缀,以删除不需要的标签。

答案 1 :(得分:0)

如果你使用scala,我想,试试feature ++ label

def ++(other: RDD[T]): RDD[T]
Return the union of this RDD and another one.