Apache pig 如何匹配清管器中的两个负载语句
我有两个加载语句Apache pig 如何匹配清管器中的两个负载语句,apache-pig,surrogate-key,Apache Pig,Surrogate Key,我有两个加载语句A和B。 在每一个我都有一个代理密钥。如果两个键都与存储的数据匹配,我希望匹配代理键列 我尝试了以下代码 A = LOAD 'a/data/' using PigStorage('\t') as (SourceWebSite:chararray,PropertyID:chararray,ListedOn:chararray,ContactName:chararray,TotalViews:int,Price:chararray); B = LOAD 'b/data/' using
A
和B
。
在每一个我都有一个代理密钥。如果两个键都与存储的数据匹配,我希望匹配代理键列
我尝试了以下代码
A = LOAD 'a/data/' using PigStorage('\t') as (SourceWebSite:chararray,PropertyID:chararray,ListedOn:chararray,ContactName:chararray,TotalViews:int,Price:chararray);
B = LOAD 'b/data/' using PigStorage('\t') as (SourceWebsite:chararray,PropertyType:chararray,IPLSNO:int,Locality:chararray,City:chararray,Price:chararray);
C = COGROUP A BY Price, B BY Price;
D = FOREACH C GENERATE FLATTEN((IsEmpty(A) ? null : A)), FLATTEN((IsEmpty(B) ? null : B));
上述命令打印所有数据。如果我理解正确,您希望获得剂量数据,其中A和B都有给定价格的数据,对吗? 您可能需要使用以下过滤器:
D = FILTER C BY (NOT IsEmpty(A) AND NOT IsEmpty(B));
D将包含这些数据行,其中A和B都有用于分组的价格值。当然比展平D:E=每个D生成展平(A),展平(B);