目前我可以使用以下命令:
hive -f hive-job.hql -hiveconf city='CA' -hiveconf country='US'
这里我只传递2个变量值。但是我有大约15到20个变量值,我需要把它们传递给hiveconf。这些值存储在属性/文本文件中。有没有可能通过-hiveconf读取文件?
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
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连接连接到配置单元服务器并按所需顺序运行查询。根据你的要求,我建议使用第二种选择。希望对你有帮助。。。!!!
2条答案
按热度按时间nnt7mjpx1#
使用shell工具可以很容易地做到这一点。
假设您的属性文件是典型的“key=val”格式,例如。
然后你可以做:
iyr7buue2#
没有直接的方法将属性值添加到配置单元变量。但我知道有两种方法可能有用:
1.)将hive-job-varibales.hql文件中的所有变量保持为
2.)使用java代码读取属性文件并将属性值转换为配置单元变量格式,使用配置单元jdbc连接连接到配置单元服务器并按所需顺序运行查询。
根据你的要求,我建议使用第二种选择。
希望对你有帮助。。。!!!