我有一个数据架构,我有50多个cols。现在我有一个场景,我需要一起添加四个int列。可能有四分之一的人可能为空。
if i do null + 1 + null + 7 i get the result as null which is true as per given in the PIG
https://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#Nulls
i.e. if either sub-expression is null, the resulting expression is null.
有人可以告诉我如何处理这样的情况。我是否需要定义UDF或仅关注null然后执行添加操作是好的。提前致谢
答案 0 :(得分:3)
一个选项是,如果列值为null,则将列值设置为零,否则继续使用原始值。示例如下。
<强> input.txt中强>
1,,3
,5,6
7,8,
<强> PigScript:强>
A = LOAD 'input.txt' USING PigStorage(',') AS (f1:int,f2:int,f3:int);
B = FOREACH A GENERATE ((f1 is null)?0:f1) + ((f2 is null)?0:f2) +((f3 is null)?0:f3);
DUMP B;
<强>输出:强>
(4)
(11)
(15)