配置单元的unix\u时间戳不能在shell脚本中工作

nimxete2  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(211)

我正在运行配置单元查询 hive -hiveconf prvDate=$prvDate -S -e "select max(ID) from Employee where unix_timestamp(date,'dd-MM-yyyy') > unix_timestamp('${hiveconf:prvDate}','dd-MM-yyyy')" 它正在返回null。prvdate是 15-12-2017 但是当我在Hive里运行相同的脚本时

select max(ID) from Employee where unix_timestamp(date,'dd-MM-yyyy') > unix_timestamp('15-12-2017','dd-MM-yyyy')

我能看到结果。有人能帮忙吗?

gijlo24d

gijlo24d1#

如果在shell脚本中使用内联sql运行配置单元,则不需要传递-hiveconf变量,而是使用shell替换。
示例(shell):

prvDate="01-01-2017"

hive -S -e "select unix_timestamp('$prvDate','dd-MM-yyyy')"

产量:1483257600
仅在执行sql脚本文件时使用--hiveconf:

hive --hiveconf bla="$bla" -f myscript.hql
zlwx9yxi

zlwx9yxi2#

这是因为您正在调用hiveconf var,更改名称应该可以工作

hive -hiveconf prvDate=$prvDate -S -e "select max(ID) from Employee where unix_timestamp(date,'dd-MM-yyyy') > unix_timestamp('${hiveconf:prvDate}','dd-MM-yyyy')"

相关问题