配置单元limit子句中的sql表达式

7d7tgy0s  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(311)

在 Impala ,你可以这样做:
从t1 limit cast中选择x(截断(9.9)为int);
但在Hive里,它似乎只接受极限[常数]。
有没有办法在limit中添加表达式?
https://www.cloudera.com/documentation/enterprise/5-6-x/topics/impala_limit.html

x6yk4ghg

x6yk4ghg1#

不幸的是,这在Hive中是不可能的。作为一种解决方法,您可以计算shell中的变量,并使用 --hivevar 变量。limit子句只允许每个计算变量或常量作为参数:
带变量的演示。你也可以把它当作 --hivevar 配置单元命令行中的参数:

hive> set hivevar:limit=10;

    hive> select 10 limit ${hivevar:limit};
    OK
    10
    Time taken: 0.098 seconds, Fetched: 1 row(s)

相关问题