pig-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Dai (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PIG-2563) IndexOutOfBoundsException: while projecting fields from a bag
Date Sat, 03 Mar 2012 02:21:57 GMT

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

Daniel Dai commented on PIG-2563:
---------------------------------

Logical plan for the foreach nested plan is wrong. Using Jonathan's first test case as example:

    |---C: (Name: LOForEach Schema: A#21:bag{#22:tuple(a#18:bytearray,b#19:bytearray,c#20:chararray)},tmp#21:bag{#22:tuple(a#18:bytearray)})
        |   |
        |   (Name: LOGenerate[false,false] Schema: A#21:bag{#22:tuple(a#18:bytearray,b#19:bytearray,c#20:chararray)},tmp#21:bag{#22:tuple(a#18:bytearray)})
        |   |   |
        |   |   A:(Name: Project Type: bag Uid: 21 Input: 0 Column: (*))
        |   |   |
        |   |   tmp:(Name: Project Type: bag Uid: 21 Input: 1 Column: (*))
        |   |
        |   |---A: (Name: LOInnerLoad[1] Schema: a#18:bytearray,b#19:bytearray,c#20:chararray)

Here we only generate one LOInnerLoad. We should generate two LOInnerLoad instead.
                
> IndexOutOfBoundsException: while projecting fields from a bag
> -------------------------------------------------------------
>
>                 Key: PIG-2563
>                 URL: https://issues.apache.org/jira/browse/PIG-2563
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.9.1, 0.10
>            Reporter: Vivek Padmanabhan
>
> The below script fails with Pig 0.9 / Pig 0.10 but works fine for Pig 0.8.
> {code}
> A = load 'i1' as (a,b,c:chararray);
> B = load 'i2' as (d,e,f:chararray);
> C = cogroup A by a, B by d;
> D = foreach C { 
>   tmp = B.d;
>   tmp_dis = distinct tmp;
>   generate A,B,tmp_dis ; } ;
> E = foreach D generate B.(d,e) as v;
> dump E;
> {code}
> The script fails with the below exception. Looks like DereferenceExpression is using
wrong schema to build inner schema.
> java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
> 	at java.util.ArrayList.RangeCheck(ArrayList.java:547)
> 	at java.util.ArrayList.get(ArrayList.java:322)
> 	at org.apache.pig.newplan.logical.relational.LogicalSchema.getField(LogicalSchema.java:653)
> 	at org.apache.pig.newplan.logical.expression.DereferenceExpression.getFieldSchema(DereferenceExpression.java:167)
> 	at org.apache.pig.newplan.logical.relational.LOGenerate.getSchema(LOGenerate.java:88)
> 	at org.apache.pig.newplan.logical.visitor.TypeCheckingRelVisitor.visit(TypeCheckingRelVisitor.java:160)
> 	at org.apache.pig.newplan.logical.relational.LOGenerate.accept(LOGenerate.java:242)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message