簡體   English   中英

是否可以將新的列分區添加到配置單元中已經存在的分區表中

[英]Is it possible to add new column partition to already existing partitioned table in hive

我有一個名為employee_part的分區表。該表按hiratedate進行了分區。 它具有如下元數據

在此處輸入圖片說明

當我嘗試將新的列分區添加到employee_part表中時,出現錯誤提示

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

失敗:SemanticException分區規范{gender = M}包含非分區列

在此處輸入圖片說明

請對此進行澄清! 提前致謝..

那是因為您已按雇用日期對數據進行了分區,但是嘗試在“性別”列上添加分區。

在hiratedate創建分區,即

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

此命令無法添加新的分區列 ,您可以使用它在現有列上添加新的分區。

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

並不意味着“添加新列的分割稱為兩性其中有位於某處的數據”。 這意味着“在性別(列)上添加新分區(讀取:新數據),但是性別不是分區列,這是您遇到的錯誤”。

在分區外部表上添加分區確實非常有用,當HDFS上有新數據時,您可以使用它將它們添加到表中。

所以答案是否定的。 您不能在現有表上添加新的分區列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM