That works. 

D = FOREACH C GENERATE A::name AS name , A::age AS age, A::gpa AS gpa;

Thanks!

On Mar 2, 2013, at 8:50 AM, Bill Graham <[email protected]> wrote:

> Each field needs to be dereferenced individually:
> 
> A::name AS name, A::age AS age...
> 
> On Saturday, March 2, 2013, Michael West wrote:
> 
>> 
>> I would like to set the schema after joining so that I do not have to
>> always dereference.  However, I receive an error when I try this.  How can
>> I resolve this error?
>> 
>> pig version 0.11
>> 
>> Error message:
>> 
>> [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1031: Incompatable
>> field schema: declared is
>> "tuple_0:tuple(name:chararray,age:int,gpa:float)", infered is "A::gpa:float"
>> 
>> 
>> Trivial sample code to demonstrate issue:
>> 
>> /*
>>  studenttab10k file from
>>  http://people.apache.org/~hashutosh/
>> */
>> 
>> A = LOAD '/Users/mike/Documents/code/hadoop/pig/data/studenttab10k' AS
>> (name:chararray, age:int, gpa:float);
>> B = LOAD '/Users/mike/Documents/code/hadoop/pig/data/studenttab10k' AS
>> (name:chararray, age:int, gpa:float);
>> C = JOIN A by name, B by name;
>> ILLUSTRATE C;
>> 
>> D = FOREACH C GENERATE A::name, A::age, A::gpa AS (name:chararray,
>> age:int, gpa:float);
>> DESCRIBE D;
>> 
>> 
>> ILLUSTRATE C output:
>> 
>> ---------------------------------------------------------
>> | A     | name:chararray    | age:int    | gpa:float    |
>> ---------------------------------------------------------
>> |       | xavier steinbeck  | 58         | 2.99         |
>> |       | xavier steinbeck  | 23         | 0.59         |
>> ---------------------------------------------------------
>> ---------------------------------------------------------
>> | B     | name:chararray    | age:int    | gpa:float    |
>> ---------------------------------------------------------
>> |       | xavier steinbeck  | 58         | 2.99         |
>> |       | xavier steinbeck  | 23         | 0.59         |
>> ---------------------------------------------------------
>> 
>> ---------------------------------------------------------------------------------------------------------------------------
>> | C     | A::name:chararray    | A::age:int    | A::gpa:float    |
>> B::name:chararray    | B::age:int    | B::gpa:float    |
>> 
>> ---------------------------------------------------------------------------------------------------------------------------
>> |       | xavier steinbeck     | 58            | 2.99            | xavier
>> steinbeck     | 58            | 2.99            |
>> |       | xavier steinbeck     | 58            | 2.99            | xavier
>> steinbeck     | 23            | 0.59            |
>> |       | xavier steinbeck     | 23            | 0.59            | xavier
>> steinbeck     | 58            | 2.99            |
>> |       | xavier steinbeck     | 23            | 0.59            | xavier
>> steinbeck     | 23            | 0.59            |
>> 
>> ---------------------------------------------------------------------------------------------------------------------------
> 
> 
> 
> -- 
> Sent from Gmail Mobile

Reply via email to