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

Posted

技术标签:

【中文标题】如何在 Spark 中将两个 RDD[string] 合并在一起?【英文标题】:how can I merge two RDD[string] together in Spark? 【发布时间】:2016-07-07 14:59:34 【问题描述】:

我有两个 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(),不行。

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

您尝试过使用 zip 吗?这将为您提供每个标签和功能的键值对。您可以将它们保留为这种样式以便于访问这两个组件,或者如果需要,将它们转换为单个字符串。

或者,如果您只是将标签附加到列表的前面,则 union 更合适。这可以以 foreach/filter 为前缀,以删除不需要的标签。

【讨论】:

以上是关于如何在 Spark 中将两个 RDD[string] 合并在一起?的主要内容,如果未能解决你的问题,请参考以下文章

在 Spark Scala 中将 RDD[(String, String, String)] 转换为 RDD[(String, (String, String))]

如何在spark中将rdd数据一分为二?

如何在 Spark Streaming 中将 RDD 转换为 DataFrame,而不仅仅是 Spark

如何在 ipython 中将 Spark RDD 转换为 pandas 数据帧?

如何在 ipython 中将 Spark RDD 转换为 pandas 数据帧?

如何在火花中将rdd对象转换为数据框