Ошибка запроса файлов паркета с помощью Apache-Drill: Ошибка в программе чтения записей паркета - PullRequest
1 голос
/ 15 мая 2019

Мне нужно использовать файлы паркета, чтобы провести некоторый анализ и обогатить их информацией. Однако я ничего не могу сделать из-за несовместимых типов данных столбцов (целые числа без знака).

Я пытался использовать Apache-Drill, но та же ошибка возникает, когда я хочу выполнить некоторые запросы.

Вот запрос, который я хочу использовать для начала, и сообщение об ошибке: SELECT * from dfs.'/home/artyom/addresses.parquet' LIMIT 5;

Error: INTERNAL_ERROR ERROR: Error in parquet record reader.
Message: 
Hadoop path: /home/artyom/addresses.parquet/part.0.parquet
Total records read: 0
Row group index: 0
Records in row group: 34369585
Parquet Metadata: ParquetMetaData{FileMetaData{schema: message schema
{
  optional binary ip (UTF8);
  optional int64 ip_id (UINT_64);
  optional int32 reputation (UINT_8);
  optional int32 confidence (UINT_8);
  optional float queries_ratio;
(...)
}

Но запросы вроде: SELECT ip from dfs.'/home/artyom/addresses.parquet' LIMIT 5; или SELECT queries_ratio from dfs.'/home/artyom/addresses.parquet' LIMIT 5; работают как шарм. Только столбцы целых чисел без знака являются проблемой.

Я прочитал документацию Apache-Drill о преобразовании типов данных и попробовал несколько вещей, но безуспешно.

Может ли кто-нибудь помочь мне с этим и сказать, есть ли способ конвертировать UINT_X в совместимые типы INTEGER? Преобразование целого числа без знака в целое число не будет проблемой для данных. Мне просто нужно выяснить, как изменить типы данных столбца файла паркета. Большое спасибо!

1 Ответ

1 голос
/ 17 мая 2019

Не могли бы вы уточнить, какую версию Drill вы используете? Похоже, проблема с чтением типа UINT была исправлена ​​в DRILL-4764 и DRILL-5971 .

Так что это должно работать на Drill 1.14 и более поздних версиях.

...