Сжатие для Dask на диске shuffle - PullRequest
2 голосов
/ 22 октября 2019

В настоящее время я работаю над локальным кластером Dash для набора сжатых файлов lz4 Parquet. Чтение и запись сжатых файлов работает нормально, но при настройке и индексировании алгоритм случайного воспроизведения записывает много несжатых данных на диск (данные больше моей памяти, поэтому я использую тасование нехватки памяти на диске).

Перестановка в Dask выполняется с помощью проекта partd , который поддерживает сжатие с помощью snappy или lz4. Однако я не могу активировать сжатие для локальных работников и перемешивать файлы. Есть ли способ использовать переменные окружения или dask.settings?

Большое спасибо

import dask
import dask.dataframe as dd
from dask.distributed import Client

# setup local cluster
client = Client(n_workers=2, threads_per_worker=4, processes=False, memory_limit='16GB')

# load, set index, save
df = dd.read_parquet('Data/Parquet', engine='fastparquet')  # <-- is compressed
df2 = df.set_index(use_columns, shuffle='disk')  # <-- generates a lot of uncompressed data on the disk
df2.to_parquet('Data/ParquetSorted', engine='fastparquet', compression="lz4")  # <-- again compressed

1 Ответ

1 голос
/ 24 октября 2019

Я просто быстро взглянул на код, и похоже, что ответ на этот вопрос «Нет, это жестко закодировано». Это можно изменить, но это требует некоторого технического обсуждения. Я призываю вас поднять вопрос на https://github.com/dask/dask/issues/new

...