评估HIVE集合陈述中的表达

luc*_*one 9 variables hadoop hive set

在我的hive查询中,我设置了一些变量.

但是我意识到hive记住了表达而不是值,例如:

set a=1 ;
set b=2 ;
set c= ${hiveconf:a} + ${hiveconf:b} ;
set c ;
-- the command above returns
-- c=1 + 2
Run Code Online (Sandbox Code Playgroud)

为什么Hive不评估价值?有没有办法设置配置单元,以便 在我之前的示例中set c ;返回c= 3

www*_*www 3

通常此时您只在 CLI 中定义变量。评估将在地图缩减运行期间进行,例如。

SELECT ${hiveconf:c} FROM yourTable LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

将为您提供 c 的计算值。