如何避免 PIG 中的符号零

How to avoid signed zero in PIG

我有两个双变量,比如 A 和 B。 A 列将始终具有正值,B 列可以同时具有正值和负值。

当我试图划分以上两个变量时: A/B

B = FOREACH A 生成 0.0/-5.4

结果

(-0.0)

我期望值为 0.0,但我得到的是 -0.0。 你能建议我在 PIG 中缓解这个问题的方法吗?

最好选择双子运算符 (?:)。

A = LOAD 'a.csv' using PigStorage(',') AS (a:double,b:double);
B = FOREACH A GENERATE (a == 0 ? a : ((b == 0) ? NULL :  a/b)) AS c;
DUMP B;

输入:a.csv

 0.0,-5.0
 -4.0,-2.0
 -4.0,2.0
 5.0,0

输出:DUMP B

 (0.0)
 (2.0)
 (-2.0)
 ()