如何优雅地处理猪中的空+数字添加

时间:2014-12-15 14:37:01

标签: apache-pig

我有一个数据架构,我有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然后执行添加操作是好的。提前致谢

1 个答案:

答案 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)