首页 文章

可以使用impala查询包含DATE类型列的hive表吗?

提问于
浏览
1

每次我试图在IMPALA中从HIVE中创建的表中选择DATE类型字段时,我得到AnalysisException:Unsupported type'DATE' .

有没有解决方法?

UPDATE 这是来自配置单元和impala查询的创建表模式的示例

Schema:

CREATE TABLE myschema.mytableday_dt date, event string)

分区( day_id int)

存储为INPUTFORMAT'org.apache.hadoop.mapred.TextInputFormat'

OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'

Impala query 从myschema.mytable b中选择b.day_dt;

2 回答

  • 0

    Impala没有 DATE 数据类型,而Hive有 . 当您从Impala访问它时,您将获得 AnalysisException: Unsupported type 'DATE' . 快速解决方法是在Hive中创建 date 列的 string 列,并以任何您想要的方式从Impala访问它 .

  • 1

    如果您以字符串形式存储,则可能会创建一个新的外部配置单元表,该表指向与现有表相同的HDFS位置,但模式的day_dt的数据类型为STRING而不是DATE .

    这是一个真正的解决方法,它可能只适合一些用例,并且每当添加新分区时,您至少需要在外部配置单元表上执行“MSCK REPAIR” .

相关问题