为什么round函数不能处理大的十进制数据?

14ifxucb  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(281)

我想做一个条件测试:

S0 = FILTER E1ECPRA BY ((NO_PCI != '0') AND (ROUND(MT_DVS) != 0) AND (ROUND(MT_EUR) != 0));

其中mt\u eur和mt\u dvs是大的十进制数据。
首先,它们被定义为:

E1ECPRA = FOREACH E1ECPRA_BRUT GENERATE
    MT_DVS           AS    MT_DVS,
    MT_CVE           AS    MT_EUR;

其中mt\u cve和mt\u dvs也是大十进制。
问题是:
无法将org.apache.pig.builtin.round的匹配函数推断为多个或没有匹配的函数。请使用显式转换。
我怎样才能解决这个问题?

nue99wik

nue99wik1#

似乎round在float和double上工作。您可以使用round\u to()并将其与0.0进行比较。类似于round\u to(mt\u cve,0)=0.0

相关问题