Have you tried using a positional reference ($0)? David
On Nov 7, 2012, at 6:44 PM, Yang <[email protected]> wrote: > hadoop@ip-10-245-54-191:~/top50/new$ cat a.pig > DEFINE mymacro(blah, zoo) RETURNS foo { > x = JOIN $blah BY id, $zoo BY id; > y = JOIN x BY $blah::id, $zoo BY id; > $foo = foreach y generate x::$blah::id; > }; > > > raw = load 'a.txt' as (id:chararray); > mymacro(raw, raw); > ############################################# > > with the above code, I had to refer to fields within a JOIN result by the > table name, which is passed in as a MACRO param. but it seems that pig > can't recognize this syntax: > > hadoop@ip-10-245-54-191:~/top50/new$ pig -x local a.pig > 2012-11-07 23:40:53,524 [main] INFO org.apache.pig.Main - Logging error > messages to: /home/hadoop/top50/new/pig_1352331653520.log > 2012-11-07 23:40:53,636 [main] INFO org.apache.pig.impl.util.Utils - > Default bootup file /home/hadoop/.pigbootup not found > 2012-11-07 23:40:53,739 [main] INFO > org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - > Connecting to hadoop file system at: file:/// > <file a.pig, line 4, column 30> Unexpected character '$' > 2012-11-07 23:40:54,399 [main] ERROR org.apache.pig.tools.grunt.Grunt - > ERROR 1200: <file a.pig, line 4, column 30> Unexpected character '$' > Details at logfile: /home/hadoop/top50/new/pig_1352331653520.log > > > how can I work around this? > > thanks > Yang
