我一直在尝试运行这段代码来从hive表中删除当前的分区,但由于某种原因,它没有从hive表中删除分区。不知道怎么了。
Table Name : prod_db.products
desc:
+----------------------------+-----------------------+-----------------------+--+
| col_name | data_type | comment |
+----------------------------+-----------------------+-----------------------+--+
| name | string | |
| cost | double | |
| load_date | string | |
| | NULL | NULL |
| # Partition Information | NULL | NULL |
| # col_name | data_type | comment |
| | NULL | NULL |
| load_date | string | |
+----------------------------+-----------------------+-----------------------+--+
## I am using the following code
SET hivevar:current_date=current_date();
ALTER TABLE prod_db.products DROP PARTITION(load_date='${current_date}');
Before and After picture of partitions:
+-----------------------+--+
| partition |
+-----------------------+--+
| load_date=2022-04-07 |
| load_date=2022-04-11 |
| load_date=2022-04-18 |
| load_date=2022-04-25 |
+-----------------------+--+
它运行没有任何错误,但不工作,但不会删除分区。表是内部/管理的。我尝试了堆栈上提到的不同方法,但它只是不适合我。帮助。
你不需要设置变量。您可以使用direct sql直接删除。
Alter table prod_db.products
drop partition (load_date= current_date());