1

面临一个奇怪的问题。Alter table删除分区的命令适用于 > 或 < 或 >= 或 <= 符号,但不适用于 = 检查。

工作命令:

ALTER TABLE XYZ DROP PARTITION(bizdate>'20231230');

命令不起作用并引发错误,指出分区不存在:

ALTER TABLE XYZ DROP PARTITION(bizdate='20231230');

当我这样做时show partitions,我可以看到“20231230”分区。

注:bizdate是一个varchar(10)

4

1 回答 1

0

检查表中的分区列表:

SHOW PARTITIONS <table>;

也许它会尝试删除分区。似乎数据在 HDFS 上的某个时间点已被删除,但配置单元表元数据仍然认为这些分区存在

 ALTER TABLE *tableName* drop if exists PARTITION(bizdate="20231230");

& 重新配对损坏的桌子

msck repair table *table_name*;
于 2020-10-05T14:11:11.873 回答