在配置单元中创建表后添加分区

eblbsuwk  于 2021-05-30  发布在  Hadoop
关注(0)|答案(2)|浏览(717)

我已经创建了一个非分区表并将数据加载到表中,现在我想添加一个 PARTITION 按部门进那张表,我能这样做吗?如果我这样做了: ALTER TABLE Student ADD PARTITION (dept='CSE') location '/test'; 它给了我一个错误:

FAILED: SemanticException table is not partitioned but partition spec exists: {dept=CSE}

请帮忙。谢谢

kupeojn6

kupeojn61#

首先创建一个表,这样表中就没有分区列了。

create external table Student(col1 string, col2 string) partitioned by (dept string) location 'ANY_RANDOM_LOCATION';

完成表的创建后,请更改表以添加分区department-wise,如下所示:

alter table Student add partition(dept ='cse') location '/test';

我希望这会有帮助。

kmynzznz

kmynzznz2#

如果在创建表时未定义分区,则不能更改表分区。
如果在更改未分区的表以添加分区时出现以下错误:“semantic exception table is not partitioned but partition spec exists:{dept=cse}”,则表示您正试图将分区的表包含在表本身中。
您没有得到语法错误,因为命令的语法是正确的,用于更改分区列。
了解有关配置单元表的详细信息:
https://www.dezyre.com//hadoop-tutorial/apache-hive-tutorial-tables
您还可以在表中检查可能的更改:
https://sites.google.com/site/hadoopandhive/home/how-to-create-table-partition-in-hive
希望这有帮助。

相关问题