在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
答案 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)