hive传递属性/文本文件以读取-hiveconf中的多个变量值

e0uiprwp  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(341)

目前我可以使用以下命令:

hive -f hive-job.hql -hiveconf city='CA' -hiveconf country='US'

这里我只传递2个变量值。但是我有大约15到20个变量值,我需要把它们传递给hiveconf。这些值存储在属性/文本文件中。
有没有可能通过-hiveconf读取文件?

nnt7mjpx

nnt7mjpx1#

使用shell工具可以很容易地做到这一点。
假设您的属性文件是典型的“key=val”格式,例如。

a=1
b=some_value
c=foo

然后你可以做:

sed 's/^/-hiveconf\n/g' my_properties_file | xargs hive -f hive-job.hql
iyr7buue

iyr7buue2#

没有直接的方法将属性值添加到配置单元变量。但我知道有两种方法可能有用:
1.)将hive-job-varibales.hql文件中的所有变量保持为

set x=1;

set y=2;
...
Then call this file in the main file i.e hive -f hive-job.hql like this:

select ... from ..
...
hive-job-varibales.hql

2.)使用java代码读取属性文件并将属性值转换为配置单元变量格式,使用配置单元jdbc连接连接到配置单元服务器并按所需顺序运行查询。
根据你的要求,我建议使用第二种选择。
希望对你有帮助。。。!!!

相关问题