【发布时间】:2015-09-03 15:17:39
【问题描述】:
我已经创建了一个非分区表并将数据加载到表中,现在我想在该表中添加一个基于部门的PARTITION,我可以这样做吗?
如果我这样做:
ALTER TABLE Student ADD PARTITION (dept='CSE') location '/test';
它给了我错误:
FAILED: SemanticException table is not partitioned but partition spec exists: {dept=CSE}
请帮忙。谢谢
【问题讨论】:
-
能否提供create table语句。您不能在 create table 语句中存在的列上创建分区。您似乎在表中添加了列
CSE。 -
如果您想在
CSE列上创建分区,那么您应该先从表中删除该列,然后再添加分区。 -
创建表 emp(id INT,name string,sal INT,dept string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 存储为 TEXTFILE;
-
您的创建表语句错误。请参阅以下用户提供的答案。
-
所以你的意思是说我们不能在以后为非分区表添加 PARTITION,我们必须在创建表期间使用 partitioned by 然后我们才能将新 PARTITION 添加到表中。