【问题标题】:how to match the two load statements in pig如何匹配pig中的两个加载语句
【发布时间】:2015-05-06 12:01:51
【问题描述】:

我有两个加载语句AB。 在每一个中,我都有一个代理键。如果两个键都匹配存储的数据,我想匹配代理键列。

我尝试了以下代码。

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));

以上命令打印所有数据。

【问题讨论】:

    标签: apache-pig surrogate-key


    【解决方案1】:

    如果我理解正确,您希望 A 和 B 都有给定价格的任何数据的剂量数据,对吗? 比你可能不得不使用过滤器:

    D = FILTER C BY (NOT IsEmpty(A) AND NOT IsEmpty(B));
    

    D 将包含 A 和 B 都具有用于分组的价格值的那些数据行。

    【讨论】:

    • 当然比展平 D: E = FOREACH D GENERATE FLATTEN(A), FLATTEN(B);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多