Default values for missing fields in a left join?

apache-pig, join

Solution

I am not aware if that can be done within the join statement, but you add add another statement:

d = FOREACH c GENERATE $0, $1, (($2 IS NULL) ? -1 : $2);

I guess it won't trigger an additional MR job.

Problem

In Pig, when I do left join and a row does not have row, the values are `NULL`: ``` c = join a by ($0) left, b by ($0); ``` if ``` a=((1,10),(2,20)) b=((1,30)) ``` then ``` c=((1,10,30),(2,20,NULL)) ``` I want to use a default value (say, `-1`) instead of `NULL` so that ``` c=((1,10,30),(2,20,-1)) ``` How do I do that? If that is impossible, how do I change the 3rd column of `c` to have the default value instead of `NULL`?

Original source