对“String RDD”中的字符串进行标记,返回另一个RDD

时间:2015-05-14 14:19:29

标签: scala apache-spark scala-collections

我有一个单独的字符串值的Spark RDD,其中每个字符串由用|符号分隔的单词组成。

此RDD由SparkSQL查询生成,而不是由.textFile(...)加载操作生成。

我不能(除非我错过了解基本的东西)使用.flatMap(_.split("|"))操作,因为这会在应用.split()之前将每个字符串展平为单个字符。

但是,我确实需要像.flatMap()这样做,因为我需要1对多的映射。由于我的数据集可能非常大,我需要这个操作来并行化,因此使用RDD和相关操作。

有趣的是,在使用.textFile(...)加载的RDD处理字符串时,.flatMap(...)操作完全符合我的要求!所以我猜测必须有办法...

非常感谢任何帮助或建议!

谢谢!

1 个答案:

答案 0 :(得分:2)

嗯,我不确定我是否理解这个问题,但我会尽力帮助。

.flatMap(_.split("|"))中,拆分会打破每一行的单词,最后会被展平。如果您不需要展平结果,也许可以使用.map(_.split("|"))