配置单元的Unix\u时间戳不在Shell脚本中工作
我正在运行配置单元查询配置单元的Unix\u时间戳不在Shell脚本中工作,shell,hive,hiveql,Shell,Hive,Hiveql,我正在运行配置单元查询 hive-hiveconf prvDate=$prvDate-S-e“从员工中选择max(ID),其中unix_时间戳(日期,'dd-MM-yyyy')>unix_时间戳('${hiveconf:prvDate}','dd-MM-yyyy')” 它正在返回NULL。PRV日期为2017年12月15日 但是当我在Hive中运行相同的脚本时 select max(ID) from Employee where unix_timestamp(date,'dd-MM-yyyy')
hive-hiveconf prvDate=$prvDate-S-e“从员工中选择max(ID),其中unix_时间戳(日期,'dd-MM-yyyy')>unix_时间戳('${hiveconf:prvDate}','dd-MM-yyyy')”
它正在返回NULL。PRV日期为2017年12月15日
但是当我在Hive中运行相同的脚本时
select max(ID) from Employee where unix_timestamp(date,'dd-MM-yyyy') > unix_timestamp('15-12-2017','dd-MM-yyyy')
我能看到结果。有人能帮忙吗 如果您运行的配置单元中包含内嵌SQL的shell脚本,您不需要传递-hiveconf变量,请改用shell替换 示例(shell): 输出: 1483257600 仅在执行SQL脚本文件时使用--hiveconf:
hive --hiveconf bla="$bla" -f myscript.hql
这是因为您正在调用hiveconf变量,请更改名称,它应该可以工作
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')"
阅读以下内容:您应该使用${hiveconf:val}而不是prvDate,不是吗?很抱歉,我使用了prvDate而不是val。
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')"