【发布时间】:2019-05-19 19:26:42
【问题描述】:
无法访问在日期列上创建分区的 Impala 中的配置单元表。使用动态分区列选项插入数据。 现在 impala 不支持日期数据类型。我应该怎么做才能在 impala 中访问这个表。如果有的话,有什么方法可以在 hive 中创建时间戳分区?
【问题讨论】:
标签: hive impala hadoop-partitioning hive-partitions
无法访问在日期列上创建分区的 Impala 中的配置单元表。使用动态分区列选项插入数据。 现在 impala 不支持日期数据类型。我应该怎么做才能在 impala 中访问这个表。如果有的话,有什么方法可以在 hive 中创建时间戳分区?
【问题讨论】:
标签: hive impala hadoop-partitioning hive-partitions
您可以轻松更改列类型。两种方法:
1) 使用alter table in Hive,将类型更改为字符串等:
alter table table_name change column col_name col_name string cascade;
2) 或者,您可以将表类型更改为 EXTERNAL,删除并使用不同的列类型重新创建,然后恢复分区:
ALTER TABLE table_name SET TBLPROPERTIES('EXTERNAL'='TRUE');
DROP TABLE table_name;
CREATE TABLE ... --change data type as desired
location... --specify the same location;
创建表后,使用此命令创建分区元数据
MSCK [REPAIR] TABLE tablename;
Amazon Elastic MapReduce (EMR) 的 Hive 版本上的等效命令是:
ALTER TABLE tablename RECOVER PARTITIONS;
这将添加 Hive 分区元数据。在此处查看手册:RECOVER PARTITIONS
【讨论】: