在Scala中使用sc.textFiles解析巨大的多行压缩文件

时间:2018-08-25 02:03:26

标签: scala apache-spark

我正在尝试解析多行格式的20GB压缩文件。我试图将每个事件解析为正好一行,然后将其拆分为正则表达式上的文件。 当我使用以下代码时:

val rdd = sc.wholeTextFiles(input, 100).flatMap {
x => x._2.split(REGEX)}.map {
x => x.replaceAll("""\n""", " ")}

它可以工作,但是由于sc.wholeTextFiles将整个20GB文件放在一个位置,因此会导致内存问题。

它试图用sc.textFiles替换sc.wholeTextFile并具有以下代码:

val rdd = sc.textFile(input, 100).flatMap {
x => x.split(REGEX)}.map {
x => x.replaceAll("""\n""", " ")}

但是,它没有给我类似的结果。有什么建议吗?

0 个答案:

没有答案