我想将current_day-1存储在中的变量中Hive
。我知道这个主题已经有较早的主题了,但是那里提供的解决方案首先建议在shell环境中在hive外部定义变量,然后在Hive内部使用该变量。
我首先得到了current_Date-1
select date_sub(FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd'),1);
然后我尝试了两种方法:
1. set date1 = ( select date_sub(FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd'),1);
and
2. set hivevar:date1 = ( select date_sub(FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd'),1);
两种方法都引发错误:
"ParseException line 1:82 cannot recognize input near 'select' 'date_sub' '(' in expression specification"
当我打印(1)代替昨天的日期时,选择查询将保存在变量中。(2)方法抛出“ {hivevar:dt_chk}未定义”。
我是Hive的新手,非常感谢您的帮助。谢谢。
Hive不支持将查询结果存储到变量的直接方法。您必须将shell选项与一起使用hiveconf
。
date1 = $(hive -e "set hive.cli.print.header=false; select date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),1);")
hive -hiveconf "date1"="$date1" -f hive_script.hql
然后,您可以在脚本中引用新创建的变量date1
select '${hiveconf:date1}'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句