为什么 ROUND 函数不适用于大十进制数据?

Why ROUND function doesn't work with Big decimal data?

我想做一个条件测试:

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

其中MT_EURMT_DVS为大十进制数据

首先他们被定义为:

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

其中 MT_CVE 和 MT_DVS 也是 bigdecimal。

问题是:

Could not infer the matching function for org.apache.pig.builtin.ROUND as multiple or none of them fit. Please use an explicit cast.

请问我该如何解决这个问题?

ROUND 似乎适用于 float,double.You 可能会使用 ROUND_TO() 并将其与 0 进行比较。0.Something 就像 ROUND_TO(MT_CVE, 0) = 0.0