在配置单元中传递参数不起作用
问题描述:
在配置单元中传递参数不适用于我。我的代码:在配置单元中传递参数不起作用
hive> set x='test variable';
hive> ${hiveconf:x};
我得到这个错误:
FAILED: Parse Error: line 1:0 cannot recognize input near
''test variable'' '<EOF>' '<EOF>'
答
尝试:
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';
为什么不使用'select $ {hiveconf:x};'执行前打印它? – leftjoin