在配置单元中声明查询时,如何在变量中调用查询?我正在创建一个shell脚本来删除前一个日期的分区,因此在file.hql中我使用:
Alter table table_name drop partition column >= ‘datesub(current_date-1)’;
但它不起作用,所以我尝试用variable声明条件,然后在这里调用。所以我首先尝试声明变量,然后在查询中调用它:
set var1= Select date_sub(current_date, 1)
Alter table table_name drop partition column >= ‘${hoveconf:var1}’;
但这是不起作用的,因为变量没有正确声明。那么如何在变量下声明查询呢?
1条答案
按热度按时间whlutmcx1#
配置单元在替换之前不计算变量,变量按原样被替换。分区规范中也不允许使用函数和子查询。
解决方案是在shell中计算变量并将其传递给脚本:
或者,如果希望调用脚本文件,则传递hiveconf变量:
在脚本中使用
'${hiveconf:dt}'
: