如何在 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 Streaming 中将 RDD 转换为 DataFrame,而不仅仅是 Spark
如何在 ipython 中将 Spark RDD 转换为 pandas 数据帧?