我有类似
的东西a = LOAD 'input-1';
b = LOAD 'input-2';
c = UNION a,b;
其中input-1是一个目录,有时可能是空的。只要它为空,UNION就会抛出一些异常,因为它是NULL。 UNION只是这里的一个操作,它可以是任何其他操作,如JOIN BY $ 0,b BY $ 0等。
在使用任何后续操作之前,是否可以检查Pig中“a”的空值?
答案 0 :(得分:1)
您需要使用SPLIT功能预处理输入。不幸的是,Pig中没有if / else语义。
a = LOAD 'input-1';
b = LOAD 'input-2';
SPLIT a INTO a_clean IF ($0 is not null), a_dirty IF ($0 is null);
SPLIT b INTO b_clean IF ($0 is not null), b_dirty IF ($0 is null);
c = UNION a_clean, b_clean;