在配置单元中传递参数不起作用

在配置单元中传递参数不起作用

问题描述:

在配置单元中传递参数不适用于我。我的代码:在配置单元中传递参数不起作用

hive> set x='test variable'; 
hive> ${hiveconf:x}; 

我得到这个错误:

FAILED: Parse Error: line 1:0 cannot recognize input near ''test variable'' '<EOF>' '<EOF>'

+0

为什么不使用'select $ {hiveconf:x};'执行前打印它? – leftjoin

尝试:

hive> set x='test variable'; 
hive> set; 

你会看到许多变量的值之间x变量的值。

hive> ${hiveconf:x}; 

将从字面上代替'test variable'。所以你正在执行命令

hive> 'test variable'; 

哪个应该导致一个错误,因为这不是我见过的SQL命令。

如果你想输出x的值,你只需要做

SET x; 

如果你想使用x的值在一份声明中,你可以做

SELECT * FROM TABLE tbl WHERE a=${hiveconf:x}; 

将运行命令

SELECT * FROM TABLE tbl WHERE a='test variable';