如果 PIG 中的第二个字段具有不同的值,如何过滤/删除记录
Posted
技术标签:
【中文标题】如果 PIG 中的第二个字段具有不同的值,如何过滤/删除记录【英文标题】:How to Filter/Remove record if 2nd field has different values in it in PIG 【发布时间】:2016-09-02 13:24:27 【问题描述】:如果第二个字段中有不同的值,如何过滤/删除记录... 例如:
身份证、姓名
100 , ABC
100 , DEF
100 , XYZ
102 , ABC
102 , ABC
103 , ABC
输出:
102 , ABC
103 , ABC
注意:100 应该删除,因为它包含两个不同的 NAMES,并且 102 应该在输出中只取一次..
【问题讨论】:
ID 和 NAME 是数据中的两个字段。 【参考方案1】:简单步骤:
A = load 'file' using PigStorage(',') as (ID:int,NAME:chararray);
B = DISTINCT A;
C = filter B by NAME =='ABC';
D = filter B by NAME !='ABC';
E = join C by ID left outer, D by ID;
F = filter E by (D::NAME is null);
G = foreach F generate C::ID as ID,C::NAME as NAME;
希望这会有所帮助..
【讨论】:
以上是关于如果 PIG 中的第二个字段具有不同的值,如何过滤/删除记录的主要内容,如果未能解决你的问题,请参考以下文章
elasticsearch中不同字段中的两个过滤器(RANGE)