将本地参数传递给hadoop脚本

pieyvz9o  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(404)

据我所知,以下将导致传递全局配置单元变量:

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"

但这似乎效率低下,我还是想知道上述的选择是否可行。

yjghlzjz

yjghlzjz1#

我找到了选择 -define 在这里:

hive -e 'SELECT * FROM DATETABLE WHERE DATE = ${DATE}' -define DATE='01/01/2000'

相关问题