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

时间:2019-07-30 07:52:33

标签: apache-pig

我想做一个条件测试:

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

MT_EUR MT_DVS 是大十进制数据。

首先将它们定义为:

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

其中MT_CVE和MT_DVS也是十进制的。

问题是:

  

无法推断org.apache.pig.builtin.ROUND的匹配功能   作为多个或没有适合。请使用显式强制转换。

请问如何解决此问题?

1 个答案:

答案 0 :(得分:1)

ROUND似乎可以在float和double上使用。您可以使用ROUND_TO()并将其与0.0进行比较。例如ROUND_TO(MT_CVE,0)= 0.0