使用Apache-Drill查询镶木地板文件时出错:镶木地板记录读取器中的错误

时间:2019-05-15 10:33:24

标签: apache parquet apache-drill

我需要使用镶木地板文件来进行一些分析并使用信息丰富它们。但是,由于列数据类型不兼容(无符号整数),我无法做任何事情。

我尝试使用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类型?从无符号整数到整数的转换对于数据来说不是问题。 我只需要了解如何修改镶木地板文件的列数据类型。非常感谢!

2 个答案:

答案 0 :(得分:1)

请您说明一下,您正在使用哪个版本的Drill?似乎在DRILL-4764DRILL-5971的范围内已解决了读取UINT类型的问题。

因此它应该在Drill 1.14及更高版本上工作。

答案 1 :(得分:1)

作为解决方法,可以使用另一个Parquet阅读器:use store.parquet.use_new_reader = true;。 默认阅读器的问题将在Drill 1.17.0中修复(有关详细信息,请参见https://issues.apache.org/jira/browse/DRILL-5983)。

相关问题