为什么 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_EUR和MT_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
我想做一个条件测试:
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 也是 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