【发布时间】:2016-05-20 17:23:24
【问题描述】:
我在互联网上进行了深入研究,但找不到任何合适的答案。
在 hive 中,是否可以声明一个变量,比如说:
test = 1
并在查询中更改此变量的值?
select
case
when field > 1 then test = test+1
else test = 1
end as test
from my table
【问题讨论】:
-
您可以使用会话变量,例如:@test :=1
-
不,无法完成的两个原因——(1)Hive 编译查询以创建适当的执行计划,以及(2) 这些参数在客户端(胖 CLI 或瘦 Beeline 客户端)而不是在服务器端进行管理。想象一下在编译最终文本之前进行文本替换的预处理器。