hive 如何更新/删除配置单元分区?

68de4m5k  于 2022-12-29  发布在  Hive
关注(0)|答案(5)|浏览(218)

将分区添加到 * I配置单元I * 中的外部表后,如何更新/删除它?

kt06eoxx

kt06eoxx1#

您可以更新配置单元分区,例如:

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);
u2nhd7ah

u2nhd7ah2#

此外,您可以从一条语句(Dropping multiple partitions in 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);
8wtpewkr

8wtpewkr3#

Alter table table_name drop partition (partition_name);
gab6jxml

gab6jxml4#

您可以将文件复制到外部分区所在的文件夹或使用
第一个月
声明。

o2gm4chl

o2gm4chl5#

您可能还需要激活包含表的数据库

use [dbname]

否则可能会出错(即使指定了数据库,即dbname.table)
失败执行错误,org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。无法更改分区。无法更改分区,因为表或数据库不存在。

相关问题