我有两个密码。
其中一个名为testing.hql
select dt, '${hiveconf:var}' from temp_table;
另一个名为testing.sh
temp= date --date='yesterday' +%y%m%d
hive -f testing.hql -hiveconf var=$temp
所以我基本上是想把日期值传递给查询,这样我就可以根据当前日期过滤查询中处理的数据。
我用这个命令运行这个。容易的。
./testing.sh
这不管用,有人能快速检查一下我犯了什么错误吗?
所以基本上我想做的是
select jobid from temp_table where dt >= '${hiveconf:var}';
所以我得到的jobid仅仅是昨天完成的,因为shell脚本将parameter设置为昨天的日期。
谢谢!
当前输出dt值后的空白。
4条答案
按热度按时间7xzttuei1#
temp变量应声明如下:,
5ssjco0h2#
temp=removing后面有一个空格,可能可以解决问题
ddhy6vgd3#
我想出来了。
2个简单的错误。
1) 在执行shell脚本时,执行行必须用` Package 。所以我做了
它就像一个符咒
2) 在查询中,参数必须用双引号括起来。
希望这个问题能对其他有这个问题的人有所帮助。
lf3rwulv4#
你可以用甜菜粉剂。它允许将结果(或部分结果)存储在变量中,并在以后的代码中使用此变量。
beetamer是hive或impala的宏扩展,允许扩展apachehive和cloudera impala引擎的功能。
在这里,您将查询得到的平均值保存到宏变量myu average中,然后在第二个查询中重用它。