我有一个单独的字符串值的Spark RDD,其中每个字符串由用|
符号分隔的单词组成。
此RDD由SparkSQL查询生成,而不是由.textFile(...)
加载操作生成。
我不能(除非我错过了解基本的东西)使用.flatMap(_.split("|"))
操作,因为这会在应用.split()
之前将每个字符串展平为单个字符。
但是,我确实需要像.flatMap()
这样做,因为我需要1对多的映射。由于我的数据集可能非常大,我需要这个操作来并行化,因此使用RDD和相关操作。
有趣的是,在使用.textFile(...)
加载的RDD处理字符串时,.flatMap(...)
操作完全符合我的要求!所以我猜测必须有办法...
非常感谢任何帮助或建议!
谢谢!
答案 0 :(得分:2)
嗯,我不确定我是否理解这个问题,但我会尽力帮助。
在.flatMap(_.split("|"))
中,拆分会打破每一行的单词,最后会被展平。如果您不需要展平结果,也许可以使用.map(_.split("|"))
。