Apache pig 如何在PIG关系中建立动态场
我与3个字段有猪关系,如下所示: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
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;