You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Jonathan Coveney (Commented) (JIRA)" <ji...@apache.org> on 2012/03/01 18:44:00 UTC

[jira] [Commented] (PIG-2563) IndexOutOfBoundsException: while projecting fields from a bag

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

Jonathan Coveney commented on PIG-2563:
---------------------------------------

Good catch! I've seen similar errors before, but was never able to isolate it. I actually isolated it with an even smaller snippet below:

{code}
A = load 'i1' as (a,b,c:chararray);
B = GROUP A BY a;
C = foreach B { 
  tmp = A.a;
  generate A, tmp; } ;
D = foreach C generate A.(a,b) as v;
{code}

Perhaps related is the following, which has a weird parse error:

{code}
A = load 'i1' as (a,b,c:chararray);
B = GROUP A BY a;
C = foreach B { 
  tmp = A.a;
  generate A; } ;
D = foreach C generate A.(a,b) as v;
{code}
                
> 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