将分区添加到 * I配置单元I * 中的外部表后,如何更新/删除它?
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);
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);
8wtpewkr3#
Alter table table_name drop partition (partition_name);
gab6jxml4#
您可以将文件复制到外部分区所在的文件夹或使用第一个月声明。
o2gm4chl5#
您可能还需要激活包含表的数据库
use [dbname]
否则可能会出错(即使指定了数据库,即dbname.table)失败执行错误,org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。无法更改分区。无法更改分区,因为表或数据库不存在。
5条答案
按热度按时间kt06eoxx1#
您可以更新配置单元分区,例如:
此命令不移动旧数据,也不删除旧数据,它只是将分区设置到新位置。
要删除分区,可以执行以下操作
u2nhd7ah2#
此外,您可以从一条语句(Dropping multiple partitions in Impala/Hive)中删除多个分区。
摘自上述链接:
编辑1:
此外,还可以使用条件符号(〉、〈、〈〉)删除批量,例如:
8wtpewkr3#
gab6jxml4#
您可以将文件复制到外部分区所在的文件夹或使用
第一个月
声明。
o2gm4chl5#
您可能还需要激活包含表的数据库
否则可能会出错(即使指定了数据库,即dbname.table)
失败执行错误,org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。无法更改分区。无法更改分区,因为表或数据库不存在。