我传递一个Shell变量,其中包含Hive Script的日期和时间空间。
但我只是在阅读Hive脚本时才获得日期值。我想将日期和时间作为带有单引号的字符串发送到Hive Script。
以下是Shell代码段
HQLSTARTTS=`date +%Y"-"%m"-"%d" "%H":"%M":"%S`
MAX_INCR_TIM=$(Select CAST(MAX(col) AS STRING) from tab_name;
HqlParams+=" -hiveconf ref_time='${MAX_INCR_TIM}' -hiveconf hqltim='${HQLSTARTTS}'
**above code will generate**
ref_time='2016-01-01 00:00:00'
hqltim='2018-01-01 00:00:00'
在HQL脚本中,
!echo ${hiveconf:ref_time} generate only '2016-01-01
!echo ${hiveconf:hqltim} generate only '2018-01-01
必需的输出
'2016-01-01 00:00:00'
'2018-01-01 00:00:00'
你能帮我解决一下如何在Hive Script中获取日期和时间吗?
答案 0 :(得分:0)
在hive命令行中使用单独的变量:
hive -hiveconf ref_time="${MAX_INCR_TIM}" -hiveconf hqltim="${HQLSTARTTS}"
hive> ! echo ${hiveconf:ref_time};
2018-01-01 00:00:00
或
将所有这些文件放入文件中,说HiveConf.hql
并使用source HiveConf.hql
hive命令。