在Hive中设置属性变量

时间:2012-05-07 17:43:34

标签: properties hive

我正在运行Hive作为oozie中的一个动作。有没有办法可以在Hive中使用属性变量?如果是,我该如何设置它们?例如:当我创建一个外部表时,我不想将该位置设置为一个属性。

CREATE EXTERNAL TABLE IF NOT EXISTS test(
id bigint, 
name string  
)
row format DELIMITED FIELDS TERMINATED BY "^"
location "/user/test/data";

因此可以将位置设置为

location ${input}

我在我的属性文件中设置 $(输入)的位置。

2 个答案:

答案 0 :(得分:1)

您可以使用set input=/user/test/data设置一个并使用${hiveconf:input}进行检索。 有关详细说明,请参见using variables

答案 1 :(得分:1)

遵循上述问题的惯例,您可以在hive命令中使用${hiveconf:input}来访问该属性。

为了定义名为 input 的属性,您必须修改hive-site.xml并添加一个代码片段

<property>
  <name>input</name>
  <value>input_value</value>
</property>

但是,如果 input 是环境变量(例如,来自bash),则可以使用${env:input}访问它。例如,${env:HOME}${env:PATH}