Apache pig 如果PIG中第二个字段的值不同,如何筛选/删除记录

Apache pig 如果PIG中第二个字段的值不同,如何筛选/删除记录,apache-pig,Apache Pig,如果第二个字段中有不同的值,如何筛选/删除记录。。。 例如: ID,NAME 100 , ABC 100 , DEF 100 , XYZ 102 , ABC 102 , ABC 103 , ABC 输出: 102 , ABC 103 , ABC 注意:100应该被删除,因为它包含两个不同的名称,而102应该只在输出中使用一次。简单步骤: A = load 'file' using PigStorage(',') as (ID:int,NAME:chararray); B = DISTINCT

如果第二个字段中有不同的值,如何筛选/删除记录。。。 例如:

ID,NAME

100 , ABC
100 , DEF
100 , XYZ
102 , ABC
102 , ABC
103 , ABC
输出:

102 , ABC
103 , ABC
注意:100应该被删除,因为它包含两个不同的名称,而102应该只在输出中使用一次。

简单步骤:

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;

希望这会有所帮助。

ID和NAME是数据中的两个字段。