是否可以向hive中现有的分区表添加新的列分区

时间:2015-06-17 07:58:58

标签: hadoop apache-hive

我有一个名为employee_part的分区表。该表由hiredate分区。它具有以下给出的元数据

enter image description here

当我尝试将新的列分区添加到employee_part表时,我收到错误

 ALTER TABLE employee_part ADD PARTITION (gender='M') location 'hdfs://user/hive/warehouse/maprpoc.db/employee_part/hiredate=1985-11-21';

FAILED:SemanticException分区规范{gender = M}包含非分区列

enter image description here

请澄清一下!提前谢谢..

2 个答案:

答案 0 :(得分:0)

这是因为您在hiredate上有分区数据,但尝试在性别列上添加分区。

在hiredate上创建分区,即

 ALTER TABLE employee_part ADD PARTITION (hiredate='1985-11-21') location 'hdfs://user/hive/warehouse/maprpoc.db/employee_part/hiredate=1985-11-21';

答案 1 :(得分:0)

此命令无法添加新的分区列,您可以使用它在现有列上添加新分区。

ALTER TABLE employee_part ADD PARTITION (gender='M') location 'hdfs://user/hive/warehouse/maprpoc.db/employee_part/hiredate=1985-11-21';

因此您收到此消息:

FAILED: SemanticException Partition spec {gender=M} contains non-partition columns

意味着"添加名为gender的新列分区,其中数据位于某处"。 这意味着"在性别(列)上添加一个新分区(读取:新数据),但性别不是分区列,这是您得到的错误"。

ADD PARTITION在分区外部表格上非常有用,当HDFS上有新数据时,您可以使用它将它们添加到表格中。

所以答案是否定的。 您无法在现有表格上添加新分区列。