dar*_*cyq 144
您可以通过以下方式更新Hive分区:
ALTER TABLE logs PARTITION(year = 2012, month = 12, day = 18) 
SET LOCATION 'hdfs://user/darcy/logs/2012/12/18';
Run Code Online (Sandbox Code Playgroud)
此命令不会移动旧数据,也不会删除旧数据.它只是将分区设置为新位置.
要删除分区,您可以执行此操作
ALTER TABLE logs DROP IF EXISTS PARTITION(year = 2012, month = 12, day = 18);
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!
小智 6
Alter table table_name drop partition (partition_name);
Run Code Online (Sandbox Code Playgroud)
        另外,您可以从一个语句删除多个分区(在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
Run Code Online (Sandbox Code Playgroud)
编辑1:
另外,您可以使用条件符号(>,<,<>)来批量删除,例如:
Alter table t 
drop partition (PART_COL>1);
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           168925 次  |  
        
|   最近记录:  |