讀取多個變量值目前我可以使用下面的命令:蜂巢通過性能/文本文件中-hiveconf
hive -f hive-job.hql -hiveconf city='CA' -hiveconf country='US'
在這裏,我只通過2變量值。但我有大約15到20個變量值,我需要通過它來通過-hiveconf。這些值存儲在屬性/文本文件中。
有沒有可能通過-hiveconf讀取文件的方法?
讀取多個變量值目前我可以使用下面的命令:蜂巢通過性能/文本文件中-hiveconf
hive -f hive-job.hql -hiveconf city='CA' -hiveconf country='US'
在這裏,我只通過2變量值。但我有大約15到20個變量值,我需要通過它來通過-hiveconf。這些值存儲在屬性/文本文件中。
有沒有可能通過-hiveconf讀取文件的方法?
沒有直接的方法將屬性值添加到Hive變量。但是,有兩種方法,我知道可能會有所幫助:
1)請蜂巢在職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 JDBC連接連接到Hive Server並按所需順序運行查詢。
根據您的要求,我會建議使用第二個選項。
希望它有幫助... !!!
你可以很容易地使用shell工具來做到這一點。
假設您的屬性文件是典型的「key = val」格式,例如,
a=1
b=some_value
c=foo
然後,你可以這樣做:
sed 's/^/-hiveconf\n/g' my_properties_file | xargs hive -f hive-job.hql
謝謝喬.. !! – 2014-10-20 05:14:11
感謝穆克什!我正在嘗試第一個選項。 我已經有一個相同的Java實現(在第二個選項中提到)。將進一步更新你:) – 2014-10-16 12:11:50