将shell日期和时间值以及空格传递给配置单元脚本仅获取配置单元脚本中的日期值

mm5n2pyu  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(317)

我将一个shell变量传递给配置单元脚本,该变量包含带有空格的日期和时间。
但我只得到只有日期值,而在Hive脚本阅读。我想将日期和时间作为带单引号的字符串发送到配置单元脚本。
下面是shell代码段

  1. HQLSTARTTS=`date +%Y"-"%m"-"%d" "%H":"%M":"%S`
  2. MAX_INCR_TIM=$(Select CAST(MAX(col) AS STRING) from tab_name;
  3. HqlParams+=" -hiveconf ref_time='${MAX_INCR_TIM}' -hiveconf hqltim='${HQLSTARTTS}'
  4. **above code will generate**
  5. ref_time='2016-01-01 00:00:00'
  6. hqltim='2018-01-01 00:00:00'

在hql脚本中,

  1. !echo ${hiveconf:ref_time} generate only '2016-01-01
  2. !echo ${hiveconf:hqltim} generate only '2018-01-01

所需输出

  1. '2016-01-01 00:00:00'
  2. '2018-01-01 00:00:00'

你能帮助我如何在Hive脚本中获得日期和时间吗?

mo49yndu

mo49yndu1#

在配置单元命令行中使用单独的变量:

  1. hive -hiveconf ref_time="${MAX_INCR_TIM}" -hiveconf hqltim="${HQLSTARTTS}"
  2. hive> ! echo ${hiveconf:ref_time};
  3. 2018-01-01 00:00:00

或者
把它们都放进档案里,比如说 HiveConf.hql 使用 source HiveConf.hql 配置单元命令。

相关问题