Dask read_parquet добавляет дополнительный столбец dir0 - PullRequest
1 голос
/ 30 октября 2019

У меня есть несколько файлов паркетных файлов в разных каталогах

paths = ['adl://entrofi/shift/20190725_060500_20190928_060500/*.parquet',
'adl://entrofi/shift/20190726_060500_20190928_060500/*.parquet',
'adl://entrofi/shift/20190727_060500_20190928_060500/*.parquet',
'adl://entrofi/shift/20190728_060500_20190928_060500/*.parquet',
'adl://entrofi/shift/20190820_060500_20190920_060500/*.parquet',
'adl://entrofi/shift/20190828_060500_20190928_060500/*.parquet']

Каждый файл содержит столбцы A,B,C

Я хочу прочитать все эти файлы, поэтому я делаю

ddf = dd.read_parquet(paths).drop_duplicates()

Однако ddf содержит столбцы A,B, C and dir0. dir0 содержит имена папок, из которых был прочитан каждый путь в paths.

Чтение каждого отдельного файла в paths не содержит dir0 столбцов.

Как избежатьдобавление dir0 автоматически к моему ddf?

1 Ответ

2 голосов
/ 30 октября 2019

Это ожидаемое поведение с бэкэндом fastparquet, потому что похоже, что ваши файлы разбиты по именам папок, в данном случае с использованием схемы «детализации» (в отличие от field=value имен каталогов).

Чтобы избежать этого, вы можете использовать движок пиарроу или просто указать столбцы, которые хотите сохранить:

ddf = dd.read_parquet(paths, columns=['A', 'B', 'C'])
ddf = dd.read_parquet(paths, engine='pyarrow')
...