Переполнение памяти pandas.DataFrame.to_parquet() в Airflow с Kubernetes Executor

Я получаю ошибки OOM от Airflow при попытке записать DataFrame в файл паркета.

Фрейм данных довольно мал, а доступная память составляет около 5 ГБ.

      df_chunk is a chunk of a pandas.DataFrame with about 2000 rows
      df_chunk.memory_usage(deep=True).sum()/1024/1024

дает только около 17 МБ используемой памяти

      with tempfile.NamedTemporaryFile(delete=True, mode='w+b', buffering=io.DEFAULT_BUFFER_SIZE) as tmp_file:
    print("Writing DF to tmp file")
    df_chunk.to_parquet(tmp_file.name,compression='gzip')
    print("Flushing tmp_file")
    tmp_file.flush()

когда я уменьшаю размер фрагмента примерно до 500 строк, у меня не возникает проблемы.

Я попытался запустить это в отдельном процессе с 2 ГБ, выделенными через библиотеку ресурсов. В этом случае я получаю ошибку realloc failed .

0 ответов

Другие вопросы по тегам