Я сохраняю файл секционированного паркета в корзине S3, используя Dask следующим образом:
dd.to_parquet(
dd.from_pandas(df, npartitions=1),
path='s3a://test/parquet',
engine='fastparquet',
partition_on='country',
object_encoding='utf8',
compression="gzip",
write_index=False,
)
Файлы паркета успешно созданы; Вот структура каталогов: Структура каталогов
Я успешно создаю таблицу Impala из этого паркета:
create external table tmp.countries_france
like parquet 's3a://test/parquet/_metadata'
partitioned by (country string)
stored as parquet location 's3a://test/parquet/'
, а также добавляю раздел в эту таблицу:
alter table tmp.countries_france add partition (sheet='belgium')
Однако, когда я делаю select * from tmp.countries_france
, я получаю следующую ошибку:
Файл 's3a: //test/parquet/sheet=france/part.0. parquet 'поврежден: метаданные указывают на нулевое количество строк, но есть хотя бы одна непустая группа строк.
Я думаю, что проблема исходит от Dask, потому что когда я создаю паркет без разделов, это работает хорошо. Я попытался установить write_index=True
, но не повезло.