2014-10-16 44 views
1

讀取多個變量值目前我可以使用下面的命令:蜂巢通過性能/文本文件中-hiveconf

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

在這裏,我只通過2變量值。但我有大約15到20個變量值,我需要通過它來通過-hiveconf。這些值存儲在屬性/文本文件中。

有沒有可能通過-hiveconf讀取文件的方法?

回答

1

沒有直接的方法將屬性值添加到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並按所需順序運行查詢。

根據您的要求,我會建議使用第二個選項。

希望它有幫助... !!!

+0

感謝穆克什!我正在嘗試第一個選項。 我已經有一個相同的Java實現(在第二個選項中提到)。將進一步更新你:) – 2014-10-16 12:11:50

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 
+0

謝謝喬.. !! – 2014-10-20 05:14:11