从 hive 外部表和 HDFS 目录中删除 null 或 __HIVE_DEFAULT_PARTITION__

sar*_*ath 5 hive bigdata external-tables hiveql

我正在尝试从 hive 外部表和 HDFS 目录中删除null / HIVE_DEFAULT_PARTITION但我无法删除它..我去过其他一些关于同一问题的帖子,我尝试了这些,即使它没有显示任何内容错误分区未被删除。

process_date=20160208
process_date=__HIVE_DEFAULT_PARTITION__

这些是我现在表中的分区。我只想删除配置单元默认分区。(这是外部表,所以我也需要从 HDFS 中删除相同的表)

我试过这个

ALTER TABLE Table_Name DROP IF EXISTS PARTITION(process_date='__HIVE_DEFAULT_PARTITION__');

我遇到以下错误

错误:编译语句时出错:失败:SemanticException (process_date = null) (state=42000,code=40000) 出现意外的未知分区

我尝试了下面的

ALTER TABLE table_name DROP PARTITION(process_date<'1');

没有错误,但 hive 默认分区仍然存在。

请帮我解决这个问题。

Sat*_*van 0

这个答案是为了帮助可能面临相同/类似问题的其他人。

当您遇到错误时,以下查询应该会有所帮助 - SemanticException Unexpectedknownpartitionsfor(part_column=null)

使用“!=”(不等于)并给出支持的值

ALTER TABLE <table_name> DROP IF EXISTS PARTITION(report_year!='2018');
Run Code Online (Sandbox Code Playgroud)