据我所知,以下将导致传递全局配置单元变量:
hive -hiveconf DATE='01/01/2000' -f test_script.hql
可以用
SELECT * FROM DATETABLE WHERE DATE = ${hiveconf:DATE}
我知道局部变量可以在脚本中定义,并通过以下操作调用:
set DATE='01/01/2000'
SELECT * FROM DATETABLE WHERE DATE = ${DATE}
但是如果有人想提交许多为每个脚本设置了本地参数的作业,我们如何从命令行传递它们呢?
重点是避免一个脚本拿起 hiveconf:DATE
由另一个接连提交的脚本设置。
编辑:
我想这是可行的,创建一个shell脚本并将变量传递给shell脚本,然后将这些变量传递给各个查询:
# !/bin/bash
FIRST_QUERY = "SELECT * FROM DATETABLE WHERE DATE = '$DATE'"
hive -e "$FIRST_QUERY"
但这似乎效率低下,我还是想知道上述的选择是否可行。
1条答案
按热度按时间yjghlzjz1#
我找到了选择
-define
在这里: