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
