将带有空格的shell日期和时间值传递给Hive脚本。在Hive脚本

时间:2018-03-27 15:31:06

标签: shell hadoop hive hiveql

我传递一个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中获取日期和时间吗?

1 个答案:

答案 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命令。