目前我可以使用以下命令:
hive -f hive-job.hql -hiveconf city='CA' -hiveconf country='US'
这里我只传递了2个变量值。但我有大约15到20个变量值,我需要通过 -hiveconf 传递它。这些值存储在属性/文本文件中。
是否有可能通过-hiveconf读取文件?
答案 0 :(得分:1)
没有直接的方法将属性值添加到Hive变量。但是我知道有两种方法可能会有所帮助:
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代码从属性文件中读取并将属性值转换为hive变量格式,并使用Hive JDBC连接连接到Hive Server并按所需顺序运行查询。
根据您的要求,我建议使用第二种选择。
希望它有所帮助...... !!!
答案 1 :(得分:0)
您可以非常轻松地使用shell工具执行此操作。
假设您的属性文件采用典型的“key = val”格式,例如
a=1
b=some_value
c=foo
然后你可以这样做:
sed 's/^/-hiveconf\n/g' my_properties_file | xargs hive -f hive-job.hql