Impala 2.2 avro select * 查询不工作

Posted

技术标签:

【中文标题】Impala 2.2 avro select * 查询不工作【英文标题】:Impala 2.2 avro select * query not working 【发布时间】:2016-03-02 16:02:50 【问题描述】:

我在 Amazon EMR 3.10 的 Impala 2.2 中创建了外部表名称“operation_details”,它读取存储在 HDFS 中的 avro 模式和 HDFS 中的 avro 文件......我能够在该表上运行所有查询,这些查询显示正确的记录当我从 operation_details 运行 select 时,控制台显示 :: WARNINGS: Unresolvable column types (column 2): declared type = DOUBLE, Avro type = string 无法解析的列类型(第 2 列):声明类型 = DOUBLE,Avro 类型 = 字符串 未知的磁盘 ID。这将对性能产生负面影响。检查您的 hdfs 设置以启用块位置元数据。 在 0.61 秒内获取 0 行 .... 我可以访问其他查询,例如“从 operation_details 中选择计数(*)”,但我无法访问 “select *”操作...我也可以在 Hive 中访问相同的查询,但在 Impala 中不能访问......如何访问 select * from tablename 查询???

【问题讨论】:

【参考方案1】:

类型“double”和“string”不匹配。 与 Hive 不同,Impala 不会在字符串和数字或布尔类型之间进行隐式转换。始终使用 CAST() 进行这些转换。

参考:http://www.cloudera.com/documentation/archive/impala/2-x/2-1-x/topics/impala_langref_unsupported.html

【讨论】:

以上是关于Impala 2.2 avro select * 查询不工作的主要内容,如果未能解决你的问题,请参考以下文章

使用 Java 将 Json 对象转换为 Parquet 格式而不转换为 AVRO(不使用 Spark、Hive、Pig、Impala)

Impala性能优化总结

Impala 中 SELECT 语句的算术运算

Impala JDBC 错误:用户 '' 没有执行 'SELECT' 的权限:表

Impala 可以从表中执行 COUNT(*) 但不能执行 SELECT *

hive 存储格式对比