首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >比较Pig中的两个数据集

比较Pig中的两个数据集
EN

Stack Overflow用户
提问于 2017-08-09 06:39:33
回答 1查看 413关注 0票数 0

我正在尝试比较pig中的两个数据集。

代码语言:javascript
代码运行次数:0
运行
复制
A = Load 'file' using pigstorage('|') (id : chararray, id1: charray, id2 : charray, name: charray, name1 : chararray, adr : chararray);

B = Load 'file1' using pigstorage('|') (id : chararray, id1: charray, id2 : charray);

假设我有上面的模式,其中来自文件1的组合(id,id1,id2)应该等于来自文件2的(id,id1,id2)的组合。

在比较is之后,我希望将组合匹配的输出存储为(id : chararray,id1: charray,id2 : charray,name1 : chararray,adr : chararray)

另外,我还想知道如何输出没有匹配到单独文件的组合的结果。

有人能帮我吗。提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2017-08-09 08:04:05

您可以简单地使用JOIN来查找匹配的组合。(我使用了左外部连接来获取MATCHED和NON_MATCHED)

代码语言:javascript
代码运行次数:0
运行
复制
A = Load 'file1' using PigStorage('|') as (id : chararray, id1: chararray, id2 : chararray, name: chararray, name1 : chararray, adr : chararray);

B = Load 'file2' using PigStorage('|') as (id : chararray, id1: chararray, id2 : chararray);

C = JOIN A BY (id, id1, id2) LEFT OUTER, B BY (id, id1, id2);

然后,使用SPLIT分隔MATCHED和NOT_MATCHED。

代码语言:javascript
代码运行次数:0
运行
复制
SPLIT C INTO MATCHED IF B::id is not null, NOT_MATCHED IF B::id is null;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45579078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档