[英]How to Update/Drop a Hive Partition?
將分區添加到Hive 中的外部表后,如何更新/刪除它?
例如,您可以通過以下方式更新 Hive 分區:
ALTER TABLE logs PARTITION(year = 2012, month = 12, day = 18)
SET LOCATION 'hdfs://user/darcy/logs/2012/12/18';
該命令不會移動舊數據,也不會刪除舊數據。 它只是將分區設置為新位置。
要刪除分區,您可以執行
ALTER TABLE logs DROP IF EXISTS PARTITION(year = 2012, month = 12, day = 18);
希望能幫助到你!
此外,您可以從一個語句中刪除多個分區(在 Impala/Hive 中刪除多個分區)。
摘自上述鏈接:
hive> alter table t drop if exists partition (p=1),partition (p=2),partition(p=3);
Dropped the partition p=1
Dropped the partition p=2
Dropped the partition p=3
OK
編輯 1:
此外,您可以使用條件符號 (>,<,<>) 刪除批量,例如:
Alter table t
drop partition (PART_COL>1);
Alter table table_name drop partition (partition_name);
您可以將文件復制到外部分區所在的文件夾中,也可以使用
INSERT OVERWRITE TABLE tablename1 PARTITION (partcol1=val1, partcol2=val2...)...
陳述。
您可能還需要使包含表的數據庫處於活動狀態
use [dbname]
否則你可能會得到錯誤(即使你指定了數據庫,即 dbname.table )
失敗的執行錯誤,從 org.apache.hadoop.hive.ql.exec.DDLTask 返回代碼 1。 無法更改分區。 無法更改分區,因為表或數據庫不存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.