从猪的元组中过滤出空列

Filter a null column out of tuple in pig

我正在处理一个用例,在该用例中我们必须消除元组中的空值

    A =
    (7,Ron,ron@abc.com)
    (8,,rina@xyz.com )
    (9,Don,)
    (9,Don,dmes@xyz.com)
    (10,Maya,maya@cnn.com)



    B = FILTER A BY col2 != ''; 

输出:-

    (7,Ron,ron@abc.com)
    (9,Don,dmes@xyz.com)
    (10,Maya,maya@cnn.com)

此处过滤运算符过滤第二行。但是我们必须过滤列。

预期的输出应该是这样的:

(7,Ron,ron@abc.com)
(8,rina@xyz.com)
(9,Don,dmes@xyz.com)
(9,Don)
(10,Maya,maya@cnn.com)

我们可以将我们的关系拆分为子关系,投影所需的列,然后将结果合并在一起: 因此,如果第一列不可为空,则第二列和第三列可以为空,但我们始终至少有一个,那么:

SPLIT A INTO col1null IF  is null, col2null  IF  is null, allnotnull IF ( is not null AND  is not null);
col1reject = FOREACH col1null GENERATE [=10=],; --remove column 
col2reject = FOREACH col2null GENERATE [=10=],; --remove column 
OUT = UNION allnotnull ,col1reject , col2reject ;