Thanks Alan for the tip. Sent from my iPhone
On Aug 22, 2012, at 4:42 PM, Alan Gates <[email protected]> wrote: > Use "is null" instead of "== null". Equality, inequality, boolean, and > arithmetic operators that encounter a null returning null is standard trinary > logic. The only possible answer to "is this equal to an unknown" is > "unknown". > > Alan. > > On Aug 22, 2012, at 11:43 AM, Alex Rovner wrote: > >> Thanks Cheolsoo, >> >> Not very intuitive but makes sense. >> >> >> On Wed, Aug 22, 2012 at 2:37 PM, Cheolsoo Park <[email protected]>wrote: >> >>> Hi Alex, >>> >>> I think that that's expected. The Pig manual says the following >>> regarding comparison >>> operators (e.g. ==): >>> >>> If either sub-expression is null, the result is null. >>> >>> >>> So "col1 == null" is null. >>> >>> Now it also says the following regarding arithmetic operators (e.g. ?): >>> >>> If either sub-expression is null, the resulting expression is null. >>> >>> >>> So "col1 == null ? 'null' : 'not-null'" is null as "col1 == null" is null. >>> >>> Here is the link: >>> http://pig.apache.org/docs/r0.10.0/basic.html#nulls >>> >>> Thanks, >>> Cheolsoo >>> >>> On Wed, Aug 22, 2012 at 11:28 AM, Alex Rovner <[email protected]> >>> wrote: >>> >>>> I am having trouble with bincond in pig 11. >>>> >>>> Sample input: >>>> 1234 >>>> 0 >>>> 1234 >>>> >>>> Sample pig script: >>>> a = LOAD 'input.txt' as (col1:int); >>>> >>>> b = FOREACH a GENERATE col1, (col1 == null ? 'null' : 'not-null') as >>> col2; >>>> >>>> dump b; >>>> >>>> >>>> Output: >>>> (1234,) >>>> (0,) >>>> (1234,) >>>> >>>> >>>> Certainly not what you expect to see... I expected to see 'not-null' >>> string >>>> in the second column. >>>> If I change the bincond to look for a particular value then everything >>>> works as expected: >>>> >>>> b = FOREACH a GENERATE col1, (col1 == 1234 ? 'null' : 'not-null') as >>> col2; >>>> >>>> Output: >>>> (1234,null) >>>> (0,not-null) >>>> (1234,null) >>>> >>>> >>>> Any ideas? I did not get a chance to test this with prior versions. >>>> >>>> Thanks >>>> Alex >>>> >>> >
