我正在尝试解析多行格式的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""", " ")}
但是,它没有给我类似的结果。有什么建议吗?