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

时间:2018-01-15 15:09:24

标签: hive impala

每次我尝试在IMPALA中从HIVE中创建的表中选择DATE类型字段时,我得到AnalysisException:不支持的类型' DATE'。

有没有解决方法?

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

架构:

CREATE TABLE myschema.mytableday_dt日期, event字符串)

分段(day_id int)

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

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

Impala查询 选择b.day_dt 来自myschema.mytable b;

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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