0

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

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

那么是否可以将位置设置为

location ${input}

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

4

2 回答 2

1

您可以使用 设置一个set input=/user/test/data并使用 检索它${hiveconf:input}。可以在此处使用变量找到对此的更详细描述

于 2012-05-08T02:10:57.223 回答
1

按照上述问题的约定,您可以通过${hiveconf:input}在配置单元命令中使用来访问该属性。

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

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

但是,如果输入是环境变量(例如,来自 bash),您可以使用${env:input}. 例如,${env:HOME}${env:PATH}

于 2012-05-08T02:33:46.517 回答