如何在alter table drop分区中使用date\u sub(current\u date,x)?

k0pti3hp  于 2021-06-24  发布在  Hive
关注(0)|答案(0)|浏览(255)

我正在使用hive,我正在尝试在一个滚动周期(过去60天)内创建一个表,但是在删除/删除过时的行/分区时遇到了一个问题。我的表有一个双分区事件\u date(string)和brand(string)。
我第一次试过

alter table northamerica_websites_last60 drop IF EXISTS partition (event_date < date_sub(current_date,61), brand="MLN");

但我收到错误消息:无法识别“date\u sub”附近的输入(常量中的“current\u date”)
然后尝试hive.exec.dynamic.partition.mode=nonstrict;

SET hive.exec.dynamic.partition.mode=nonstrict;
alter table northamerica_websites_last60 drop IF EXISTS partition (event_date < date_sub(current_date,61), brand="MLN");

我仍然收到错误消息:无法识别“date\u sub”附近的输入(常量中的“current\u date”)
然后我尝试了一个变量

SET hive.exec.dynamic.partition.mode=nonstrict;
SET hivevar:DATE_VAR= date_sub(current_date,61);

alter table northamerica_websites_last60 drop IF EXISTS partition (event_date < ${DATE_VAR}, brand="MLN");

我仍然收到错误消息:无法识别“date\u sub”附近的输入(常量中的“current\u date”)
最后我试过了

SET hive.exec.dynamic.partition.mode=nonstrict;

SET runmdt = date_sub(current_date,91);
alter table northamerica_media_last90 drop IF EXISTS partition (event_date < ${hiveconf:runmdt} , brand="MLN");

但仍有错误消息:无法识别“date\u sub”附近的输入(常量中的“current\u date”)
但是,当我尝试使用字符串时,它是有效的。例如

alter table northamerica_websites_last60 drop IF EXISTS partition (event_date < '2020-07-25', brand="MLN");

如何在alter table drop partition查询中使用date\u sub(current\u date,91)?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题