将别名和字段传递到pig宏中

pxiryf3j  于 2021-06-25  发布在  Pig
关注(0)|答案(1)|浏览(427)

我试图将别名和字段传递给pig宏:

  1. define mymac (a1, f, a2) returns void {
  2. foreach (join $a1 on $f, $a2 on field) generate
  3. $a1::$f as $f, $a2::field as field;
  4. };

我出错了

  1. Unexpected character '$'

在第二个 $$a1::$f 当我把宏称为

  1. mymac(x,foo,y);

我也试过了

  1. define mymac (a1, f, af, a2) returns void {
  2. foreach (join $a1 on $f, $a2 on field) generate
  3. $af as $f, $a2::field as field;
  4. };
  5. mymac(x,foo,x::foo,y);

还有更神秘的错误

  1. org.apache.pig.PigServer - exception during parsing: Error during parsing. Pig script failed to parse: at expanding macro

那么,我该怎么办?如何将别名与宏中的字段组合?

ejk8hzay

ejk8hzay1#

你需要输入字段名 '' 例如,调用宏时 mymac(x,'foo','x::foo',y); . 我已经测试了你提到的第二种方法,它是有效的。

相关问题