我有两个双变量说A和B. A列始终具有正值,B列可以同时具有正值和负值。
当我试图划分以上两个变量时: A / B
B = FOREACH A GENERATE 0.0 / -5.4
( - 0.0)
我期待值0.0,但我得到-0.0。 你能否建议我在PIG中缓解这个问题的方法。
答案 0 :(得分:1)
最好选择bicond运营商(?:)。
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)
()