按新行并行化?

时间:2016-06-24 20:00:23

标签: string scala apache-spark

假设我有一个字符串"Hello, World\nHow are you today?"

我希望sc.parallelize("Hello, World\nHow are you today?").collect()返回 Array("Hello World", "How are you today?")

相反,它返回一个数组,其中每个字符都是一个单独的元素。

我如何能够用新行而不是按字符并行化字符串?

1 个答案:

答案 0 :(得分:3)

在这种特殊情况下,我通常会做类似的事情:

sc.parallelize(myString.split("\n")).collect()

如果你确实已经在内存中有一个大字符串,其中包含换行符。

使用Spark的更常见情况是处理更多的数据,而不是将内存作为blob方便,在这种情况下,如果你有一个包含数据的文件,sc.textFile会自动使用换行符默认情况下作为分隔符:

sc.textFile("file:///home/user/mydata.txt").collect()

mydata.txt可能如下所示:

Hello World
How are you today?