Генерация файлов паркета — различия между R и Python

Мы создали файл parquet в Dask (Python) и с Drill (R с использованием пакета Sergeant). Мы заметили несколько проблем:

  1. Формат Dask (то есть fastparquet) содержит файлы _metadata и _common_metadata, в то время как файл parquet в R \ Drill не имеет этих файлов и вместо них содержит файлы parquet.crc (которые можно удалить). в чем разница между этими реализациями parquet?

person skibee    schedule 31.07.2017    source источник
comment
Я понимаю, что существуют различные версии паркета, но это сложно чтобы понять различия   -  person skibee    schedule 31.07.2017
comment
Вы должны опубликовать эти три вопроса как отдельные на Stack Overflow. Публикация нескольких в виде одного экземпляра довольно сложна для ответа и интеграции в пользовательский интерфейс SO.   -  person Uwe L. Korn    schedule 31.07.2017
comment
Спасибо за вклад - так и сделаю   -  person skibee    schedule 31.07.2017


Ответы (1)


(отвечая только на 1), пожалуйста, разместите отдельные вопросы, чтобы было легче ответить)

_metadata и _common_metadata — это вспомогательные файлы, которые не требуются для набора данных Parquet, они используются Spark/Dask/Hive/... для вывода метаданных всех файлов Parquet набора данных без необходимости чтения нижнего колонтитула всех файлов. . В отличие от этого, Apache Drill создает аналогичный файл в каждой папке (по требованию), который содержит все нижние колонтитулы всех файлов Parquet. Только при первом запросе к набору данных читаются все файлы, дальнейшие запросы будут читать только файл, который кэширует все нижние колонтитулы.

Инструменты, использующие _metadata и _common_metadata, должны иметь возможность использовать их, чтобы иметь более быстрое время выполнения, но не зависеть от них для операций. В случае, если они не существуют, обработчик запросов просто должен прочитать все нижние колонтитулы.

person Uwe L. Korn    schedule 31.07.2017
comment
Совершенно правильно. Кроме того, fastparquet (библиотека, которую dask будет использовать для создания файлов) также может читать список файлов данных паркета без _metadata, но первоначальная загрузка метаданных будет медленнее. Раньше Spark создавал эти файлы, но больше не делает, думаю, hive все еще делает. - person mdurant; 31.07.2017