Количество нет. строк из больших файлов паркета, используя dask без ошибок памяти - PullRequest
1 голос
/ 01 апреля 2020

У меня 20 паркетных файлов размером около 5 ГБ. Я хочу считать нет. записей во всем наборе данных.

У меня есть текущий код:

from dask.distributed import Client, LocalCluster

cluster = LocalCluster(n_workers=8, threads_per_worker=1)
client = Client(cluster)

import dask.dataframe as dd

df = dd.read_parquet("s3://bucket/2020_03_31/*.parquet", columns=['id'], chunksize="1000MB")
df.count().compute()

Но код зависает и выбрасывает ошибки памяти. У моей машины 16 ядер и 64 ГБ оперативной памяти.

РЕДАКТИРОВАТЬ:

В соответствии с запросом я удалил аргумент chunksize, но вывод все еще зависает. Даже страница диагностики перестает загружаться. У меня нет ошибок памяти, но я не знаю, что происходит.

# Output hangs
df = dd.read_parquet("s3://bucket/2020_03_31/*.parquet", columns=['id'])

1 Ответ

0 голосов
/ 04 апреля 2020

Я рекомендую удалить аргумент chunksize. Делая это, вы просите Dask объединить множество групп строк в одну задачу, что может привести к перегрузке вашей памяти.

...