我想传递分区值作为参数。
SET runmdt = date_sub(current_date,5);
下面的查询工作正常。
SELECT
cal_id,caller_name,location
from
amobe_tbl a
WHERE a.create_dt IN
(select DISTINCT create_dt from mt_call
WHERE create_dt between date_sub(current_date,20) and current_date)
and a.create_dt=${hiveconf:runmdt};
当插入到分区表时,它不工作。
SET runmdt = date_sub(current_date,5);
INSERT OVERWRITE TABLE amobe_tbl PARTITION (create_dt=${hiveconf:runmdt})
SELECT
cal_id,caller_name,location
from
amobe_tbl a
WHERE a.create_dt IN
(select DISTINCT create_dt from mt_call
WHERE create_dt between date_sub(current_date,20) and current_date)
and a.create_dt=${hiveconf:runmdt};
失败:parseexception行1:92无法识别“date\u sub”附近的输入(常量create\u dt中的“current\u date”是日期数据类型)。
请帮帮我。
提前谢谢。
1条答案
按热度按时间3bygqnnd1#
1
配置单元变量不过是一种文本替换机制。
替换是在解析和执行之前完成的。
2
使用动态分区