hiveql:使用查询结果作为变量

igetnqfo  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(1931)

在hive中,我希望动态地从表中提取信息,将其保存在变量中并进一步使用它。考虑下面的示例,在这里我检索列var的最大值,并希望在后续查询中将其用作条件。

set maximo=select max(var) from table;

select
  *
from
  table
where
  var=${hiveconf:maximo}

但它不起作用

set maximo=select max(var) from table;

${hiveconf:maximo}

显示预期结果。
正在执行:

select '${hiveconf:maximo}'

给予

"select max(var) from table"

不过。
最好的

lkaoscv7

lkaoscv71#

hive按原样替换变量,不执行它们。使用shell Package 器脚本将结果放入变量并将其传递给配置单元脚本。

maximo=$(hive -e "set hive.cli.print.header=false; select max(var) from table;")
hive -hiveconf "maximo"="$maximo" -f your_hive_script.hql

在你的剧本里你可以用 select '${hiveconf:maximo}'

相关问题