Я пытаюсь проанализировать архивированный файл размером 20 ГБ в многострочном формате. Я пытаюсь разобрать каждое событие ровно в одну строку, для которой я разбиваю файл на регулярное выражение.
Когда я использую следующий код:
val rdd = sc.wholeTextFiles(input, 100).flatMap {
x => x._2.split(REGEX)}.map {
x => x.replaceAll("""\n""", " ")}
это работает, но так как sc.wholeTextFiles получает весь файл размером 20 ГБ в одном месте, это вызывает проблемы с памятью.
Попытка заменить sc.wholeTextFile на sc.textFiles и имеет следующий код:
val rdd = sc.textFile(input, 100).flatMap {
x => x.split(REGEX)}.map {
x => x.replaceAll("""\n""", " ")}
Однако, это не дает мне аналогичный результат. Есть предложения?