Файл паркета запроса Apache-Drill: Ошибка в программе чтения паркетной записи - PullRequest
0 голосов
/ 23 октября 2018

Я создал файл паркета с помощью Pyarrow, и его можно запросить с помощью Pyspark.Однако его нельзя запросить с помощью Apache-Drill (1.14), который был установлен недавно и может работать с другими форматами данных, включая csv, json и RDB.Может ли кто-нибудь помочь мне устранить неполадки, что идет не так и как я могу это исправить?Спасибо!

(я смог запустить запрос count (*), но не смог выполнить запрос ниже)

Вот мой запрос и сообщение об ошибке:

select * from dfs.`C:/Apache_Spark/sample_Sends_2017.parquet` limit 20;

Ошибка выполнения запроса

Причина:

SQL Error: INTERNAL_ERROR ERROR: Error in parquet record reader.
Message: Failure in setting up reader
Parquet Metadata: ParquetMetaData{FileMetaData{schema: message schema {
optional int64 SendsID;
optional int64 SendJobsID;
optional int64 SendID;
optional binary EncryptIndivID (UTF8);
optional int64 SendDate (TIMESTAMP_MICROS);
optional int64 __index_level_0__;
}

, metadata: {pandas={"index_columns": ["__index_level_0__"], "column_indexes": [{"name": null, "field_name": null, "pandas_type": "unicode", "numpy_type": "object", "metadata": {"encoding": "UTF-8"}}], "columns": [{"name": "SendsID", "field_name": "SendsID", "pandas_type": "int64", "numpy_type": "int64", "metadata": null}, {"name": "SendJobsID", "field_name": "SendJobsID", "pandas_type": "int64", "numpy_type": "int64", "metadata": null}, {"name": "SendID", "field_name": "SendID", "pandas_type": "int64", "numpy_type": "int64", "metadata": null}, {"name": "EncryptIndivID", "field_name": "EncryptIndivID", "pandas_type": "unicode", "numpy_type": "object", "metadata": null}, {"name": "SendDate", "field_name": "SendDate", "pandas_type": "datetime", "numpy_type": "datetime64[ns]", "metadata": null}, {"name": null, "field_name": "__index_level_0__", "pandas_type": "int64", "numpy_type": "int64", "metadata": null}], "pandas_version": "0.23.0"}}}, blocks: [BlockMetaData{1000, 46321 [ColumnMetaData{SNAPPY [SendsID] optional int64 SendsID  [PLAIN_DICTIONARY, RLE, PLAIN], 4917}, ColumnMetaData{SNAPPY [SendJobsID] optional int64 SendJobsID  [PLAIN_DICTIONARY, RLE, PLAIN], 6342}, ColumnMetaData{SNAPPY [SendID] optional int64 SendID  [PLAIN_DICTIONARY, RLE, PLAIN], 6568}, ColumnMetaData{SNAPPY [EncryptIndivID] optional binary EncryptIndivID (UTF8)  [PLAIN_DICTIONARY, RLE, PLAIN], 39530}, ColumnMetaData{SNAPPY [SendDate] optional int64 SendDate (TIMESTAMP_MICROS)  [PLAIN_DICTIONARY, RLE, PLAIN], 41195}, ColumnMetaData{SNAPPY [__index_level_0__] optional int64 __index_level_0__  [PLAIN_DICTIONARY, RLE, PLAIN], 45450}]}]}
Fragment 0:0

1 Ответ

0 голосов
/ 24 октября 2018

Похоже, что это известная проблема DRILL-6670 и устранена в текущей ветке Apache Drill master .Вы можете собрать Drill из этой ветки или дождаться следующей версии Drill 1.15.0.

Проблема в столбце optional int64 SendDate (TIMESTAMP_MICROS).Вы можете попытаться исключить его из запроса или преобразовать в BigInt, подробнее см. в этом комментарии .

...