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

Reply via email to