dask.dataframe.read_parquet занимает слишком много времени - PullRequest
1 голос
/ 13 мая 2019

Я пытался читать паркет из s3 следующим образом:

import dask.dataframe as dd

s3_path = "s3://my_bucket/my_table"
times = dd.read_parquet(
        s3_path,
        storage_options={
                          "client_kwargs": {
                              "endpoint_url": bucket_endpoint_url,
                          },
                          "profile_name": bucket_profile,
                        },
        engine='pyarrow',
    )

Просто создание кадра данных dask занимает очень много времени.В этом фрейме данных вычисления не выполняются.Я отслеживаю код, и похоже, он тратит время на pyarrow.parquet.validate_schema ()

В моих паркетных столах много файлов (~ 2000 файлов).И это занимает 543 секунды на моем ноутбуке только для создания фрейма данных.И он пытается проверить схему каждого файла паркета.Есть ли способ отключить проверку схемы?

Спасибо,

1 Ответ

0 голосов
/ 18 мая 2019

В настоящее время, если нет файла метаданных и если вы используете бэкэнд PyArrow, Dask, вероятно, отправляет запрос на чтение метаданных из каждого отдельного раздела на S3.Это довольно медленно.

Теперь программа чтения паркетных данных Dask переписывается, чтобы помочь решить эту проблему.Возможно, вы захотите использовать fastparquet до этого момента и ключевое слово ignore_divisions (или что-то в этом роде) или вернуться через месяц или два.

...