Hive LIMIT子句中的表达

时间:2018-11-27 23:40:10

标签: sql hive impala

在Impala中,您可以执行以下操作:

SELECT x FROM t1 LIMIT cast(truncate(9.9)AS INT);

但是在Hive中,似乎只需要 LIMIT [恒定]

是否可以在LIMIT中添加表达式?

https://www.cloudera.com/documentation/enterprise/5-6-x/topics/impala_limit.html

1 个答案:

答案 0 :(得分:1)

不幸的是,这在Hive中是不可能的。解决方法是,您可以在shell中计算变量,然后使用--hivevar变量将其传递给Hive。 Limit子句仅允许将按计算得出的变量或常量作为参数:

具有变量的演示。您还可以在配置单元命令行中将其作为--hivevar参数传递

    hive> set hivevar:limit=10;

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