第二轮参数只接受常量+配置单元

wecizke3  于 2021-06-29  发布在  Hive
关注(0)|答案(2)|浏览(320)

以下内容:

hive> create table t1 (val double, digit int);
hive> insert into t1 values(10,2);
hive> insert into t1 values(156660,3);
hive> insert into t1 values(8765450,4);
hive> select round(val, digit) from round_test;

出现以下错误:
失败:semanticexception[error 10014]:行1:7参数“digit”错误:第二个参数只接受常量
在 Impala 里工作很好。
有人能帮我指出错误的来源吗?

flvlnr44

flvlnr441#

错误是说round的第二个参数必须是costant。i、 在配置单元中,不能将列用作round函数的secund参数。如果你需要这样做,我建议你创建你的自定义项。

vlju58qv

vlju58qv2#

BigDecimal a = new BigDecimal(value);
    BigDecimal roundOff = a.setScale(places, BigDecimal.ROUND_HALF_EVEN);
    return roundOff.doubleValue();

谢谢马克的快速回复。
我已经用自定义项来解决这个问题了。因为这是一个已知的问题hive-4523。我想已经有补丁了。

相关问题