Foreach在猪的Foreach里面

时间:2013-08-19 14:08:07

标签: hadoop apache-pig

我有这样的rec结构:

Read_PeopleAll: {PID: bytearray,Read_PropertyTax: {(PropertyID: bytearray,ReadPropertyDS: (PersonID: bytearay,PropertyID: bytearray))}}

其实我正在尝试访问 PropertyID ,但无法执行此操作。

    a = foreach Read_PeopleAll {
        b = foreach Read_PropertyTax{

            c =  filter ReadPropertyDS by PersonID is not null;
                generate $0,c;
        };
        GENERATE $0,b;
};
dump a;

但我是这样的错误:

  

不匹配的输入'{'期待GENERATE

我是否能够在另一个foreach中使用foreach。

以其他方式我可以访问,

a = FOREACH Read_PeopleAll generate Read_PropertyTax.ReadPropertyDS;
IsValidProperty = FILTER a BY PropertyID==1.

任何建议!!!

1 个答案:

答案 0 :(得分:0)

来自docs

  

注意:FOREACH语句只能嵌套到两个级别。嵌套到三个或更多级别的FOREACH语句将导致语法错误。

你可以在FOREACH中嵌套一个FOREACH,但是你不能在其中有另一个嵌套操作。