Apache pig 如何在PIG关系中建立动态场

Apache pig 如何在PIG关系中建立动态场,apache-pig,Apache Pig,我与3个字段有猪关系,如下所示: A = Load 'record.txt' as (name chararray,ID int,subject chararray,flag boolean);<br> DUMP A; ( RAM,222,JAVA,true) ( RAM,111,DotNet,false) ( RAM,444,HTML,false) ( SAM,777,DotNet,true) ( SAM,333,JAVA,false) 使用下面的脚本,但没有给出确切的结果 A

我与3个字段有猪关系,如下所示:

A = Load 'record.txt' as (name chararray,ID int,subject chararray,flag boolean);<br>
DUMP A;

( RAM,222,JAVA,true)
( RAM,111,DotNet,false)
( RAM,444,HTML,false)
( SAM,777,DotNet,true)
( SAM,333,JAVA,false)
使用下面的脚本,但没有给出确切的结果

A = Load 'demo.txt' as (name chararray,ID int,subject chararray,flag boolean);
B = FOREACH A GENERATE name,ID,subject,flag,CONCAT(name,ID) As reference;
DUMP B;

( RAM,222,JAVA,true,RAM-222)
( RAM,111,DotNet,false,RAM-111)
( RAM,444,HTML,false,RAM-444)
( SAM,777,DotNet,true,SAM-777)
( SAM,333,JAVA,false,SAM-333)
CONCAT函数应该是什么,或者以其他方式获得准确的结果

A = Load 'demo.txt' as (name chararray,id int,sub chararray,flg boolean);
B = FOREACH A GENERATE name,id,sub,flg,CONCAT(name,ID) As rf;

split B into b1 if flg=='true', b2 if flg=='false';  
C = join b2 by name left outer,b1 by name;
C1 = foreach C generate b2::name as name,b2::id as id,b2::sub as sub,b2::flg as flg,b1::rf as rf;

Result = union b1,C1;
希望这会有帮助

A = Load 'demo.txt' as (name chararray,id int,sub chararray,flg boolean);
B = FOREACH A GENERATE name,id,sub,flg,CONCAT(name,ID) As rf;

split B into b1 if flg=='true', b2 if flg=='false';  
C = join b2 by name left outer,b1 by name;
C1 = foreach C generate b2::name as name,b2::id as id,b2::sub as sub,b2::flg as flg,b1::rf as rf;

Result = union b1,C1;