x1c 0d1x考虑下表:
CREATE EXTERNAL TABLE sales(id INT,name STRING,amount DOUBLE)PARTITIONED BY(CITY INT);
在上面的表中,当我试图改变非分区数据类型时,我可以使用下面的命令
ALTER TABLE sales CHANGE name name varchar(10);
当我试图改变城市列的分区数据类型时,也是这样
ALTER TABLE sales CHANGE city城市字符串;
FAILED:执行错误,org. apache. hadoop. hive. ql. exec. DDLTask返回代码1,列引用城市无效
面对上述错误
谁能帮我查询如何更改分区列的数据类型?
1条答案
按热度按时间hs1ihplo1#
你真的不能。你需要重新创建表结构。
分区列创建物理文件夹来分区和存储数据。所以,唯一的方法是-
1.创建一个新的表与新的分区列类型。
1.从旧表插入新表。
1.扔掉旧table
1.将新表重命名为旧表。