Я новичок в PySpark и просто использую его для обработки данных.
У меня есть файл объемом 120 ГБ, содержащий более 1,05 миллиарда строк.Я могу обработать агрегацию и фильтрацию файла и вывести результат в файл CSV с помощью функции coalesce () без проблем.
Моя проблема заключается в том, когда я пытаюсь прочитать каждую строку в файле, чтобывыполнить какое-то вычисление, и моя работа с искрой завершится неудачно с использованием функций .collect () или .toLocalIterator ().Когда я ограничиваю количество строк, которые я читаю, это работает нормально.
Пожалуйста, как я могу решить эту проблему?Можно ли читать строки в битах, например, строку за раз или порцию за раз?
Я запускаю Spark локально на компьютере с 64 ГБ ОЗУ.
Ниже приведен пример моегокод Python, который работает:
sql = "select * from table limit 1000"
details = sparkSession.sql(sql).collect()
for detail in details:
#do some computation
Ниже приведен пример моего кода Python, который не работает:
sql = "select * from table"
details = sparkSession.sql(sql).collect()
for detail in details:
#do some computation
Вот как я отправляю свою искровую работу
spark-submit --driver-memory 16G --executor-memory 16G python_file.py
Большое спасибо.