每次我尝试在IMPALA中从HIVE中创建的表中选择DATE类型字段时,我得到AnalysisException:不支持的类型' DATE'。
有没有解决方法?
UPDATE 这是来自配置单元和impala查询的创建表架构的示例
架构:
CREATE TABLE myschema.mytable
(day_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;
答案 0 :(得分:1)
Impala没有DATE
数据类型,而Hive有。{1}}数据类型。从Impala访问它时,您将获得AnalysisException: Unsupported type 'DATE'
。快速解决方法是在Hive中创建string
值的date
列,并以任何方式从Impala访问它。
答案 1 :(得分:0)
如果您以字符串形式存储,则可能会创建一个新的外部配置单元表,该表指向与现有表相同的HDFS位置,但模式的day_dt的数据类型为STRING而不是DATE。
这是一个真正的解决方法,它可能只适合某些用例,而且您至少需要做一些事情,并且需要进行MSCK REPAIR"每当添加新分区时,在外部配置单元表上。