hadoop-pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alan Gates (JIRA)" <j...@apache.org>
Subject [jira] Commented: (PIG-1289) PIG Join fails while doing a filter on joined data
Date Tue, 16 Mar 2010 23:45:27 GMT

    [ https://issues.apache.org/jira/browse/PIG-1289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12846213#action_12846213
] 

Alan Gates commented on PIG-1289:
---------------------------------

I think I'm missing something here.  It seems the criteria here should be that the filter
is not pushed up a branch that will be producing nulls.  So, given a script like:

A = load 'foo' as (q, r, s);
B = load 'bar ' as (t, u, v);
C = join A on q outer, B on t;

D = filter C by q > 0; 

is pushable, but 

D = filter C by t > 0;

is not.  I think the test that at most one element of the join is outer and it is the one
we are considering meets this criteria.  But I don't understand the need to check for null
tests.



> PIG Join fails while doing a filter on joined data
> --------------------------------------------------
>
>                 Key: PIG-1289
>                 URL: https://issues.apache.org/jira/browse/PIG-1289
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.6.0
>            Reporter: Karim Saadah
>            Assignee: Daniel Dai
>            Priority: Minor
>             Fix For: 0.7.0
>
>         Attachments: PIG-1289-1.patch
>
>
> PIG Join fails while doing a filter on joined data
> Here are the steps to reproduce it:
> -bash-3.1$ pig -latest -x local
> grunt> a = load 'first.dat' using PigStorage('\u0001') as (f1:int, f2:chararray);
> grunt> DUMP a;
> (1,A)
> (2,B)
> (3,C)
> (4,D)
> grunt> b = load 'second.dat' using PigStorage() as (f3:chararray);
> grunt> DUMP b;
> (A)
> (D)
> (E)
> grunt> c = join a by f2 LEFT OUTER, b by f3;
> grunt> DUMP c;
> (1,A,A)
> (2,B,)
> (3,C,)
> (4,D,D)
> grunt> describe c;
> c: {a::f1: int,a::f2: chararray,b::f3: chararray}
> grunt> d = filter c by (f3 is null or f3 =='');
> grunt> dump d;
> 2010-03-03 15:00:37,129 [main] INFO  org.apache.pig.impl.logicalLayer.optimizer.PruneColumns
- No column pruned for b
> 2010-03-03 15:00:37,129 [main] INFO  org.apache.pig.impl.logicalLayer.optimizer.PruneColumns
- No map keys pruned for b
> 2010-03-03 15:00:37,129 [main] INFO  org.apache.pig.impl.logicalLayer.optimizer.PruneColumns
- No column pruned for a
> 2010-03-03 15:00:37,130 [main] INFO  org.apache.pig.impl.logicalLayer.optimizer.PruneColumns
- No map keys pruned for a
> 2010-03-03 15:00:37,130 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1002: Unable
to store alias d
> This one is failing too:
> grunt> d = filter c by (b::f3 is null or b::f3 =='');
> or this one not returning results as expected:
> grunt> d = foreach c generate f1 as f1, f2 as f2, f3 as f3;
> grunt> e = filter d by (f3 is null or f3 =='');
> grunt> DUMP e;
> (1,A,)
> (2,B,)
> (3,C,)
> (4,D,)
> while the expected result is
> (2,B,)
> (3,C,)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message