Запуск итерационной логики для записи набора данных, отфильтрованного по дате, в формат parquet при сбое ООМ

#apache-spark #parquet #pyspark-dataframes

#apache-spark #паркет #pyspark-dataframes

Вопрос:

У меня есть сценарий, в котором у меня есть набор данных со столбцом даты, а позже я использую набор данных на итерации для сохранения набора данных в файлах нескольких разделов в формате parquet. Я выполняю итерацию списка дат, и при записи в формат parquet с этой папкой раздела даты я фильтрую набор данных по дате.

Я смог записать для определенных итераций, но после этого произошел сбой из-за исключений нехватки памяти.

Каков наилучший способ оптимизировать это, чтобы сохранить данные с помощью ООМ.

 dataset = dataset with some transformations
for date in date-list
   pd.write_part_file("part-data-file", dataset.filter(archive_date==date))
 

Код выглядит так, как указано выше.

Комментарии:

1. не могли бы вы поделиться своим кодом?

2. Возможно, вы захотите попробовать dataset.repartition(n) увеличить количество n разделов перед циклом.

3. @mazaneicha Есть одно сообщение об этой проблеме, в котором есть аналогичная итерация для записи нескольких разделов в формате parquet. Пытаюсь это понять. Я также могу подумать о перераспределении. issues.apache.org/jira/browse/SPARK-8890

4. Надеюсь, вы не используете Spark 1.5.

5. Нет, я использую версию spark 2