foreach-inside-foreach-in-pig中的foreach

kknvjkwl  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(346)

我有这样的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;

但我犯了这样的错误:
不匹配的输入“{”需要生成
我是否能在另一个foreach中使用foreach。
以另一种方式我可以访问,

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

有什么建议吗!!!

roejwanj

roejwanj1#

从文档中:
注意:foreach语句只能嵌套到两个级别。嵌套到三个或更多级别的foreach语句将导致语法错误。
可以在foreach中嵌套foreach,但不能在其中嵌套其他操作。

相关问题