2016-05-12 152 views
0

我试图解决的问题下面相匹配的数据,请建议需要省略,在两个表中猪

我有两个表想要删除的唯一匹配的记录存在于表2 注意:即使有在表中提供普通按键若表2有1条记录,那么它应该只 删除1个记录表1包括相同的密钥的, 输入:

Table 1: 
1,Sam,5000 
1,Sam,5000 
1,Sam,5000 
2,Boo,3000 

Table 2: 
1,Sam,5000 
2,Boo,3000 

OUTPUT: 
1,Sam,5000 
1,Sam,5000 

回答

1

你需要得到设置两个关系之间的差异。 来源:See here。你必须下载支持从here .The罐子功能下Apache License

register datafu-pig-incubating-1.3.0.jar 
define SetDifference datafu.pig.sets.SetDifference(); 

A = LOAD 'test1.txt' as (a1:int,a2:chararray,a3:chararray); 
B = LOAD 'test2.txt' as (b1:int,b2:chararray,b3:chararray); 

diff = FOREACH A { 
        a1 = ORDER A by a1; 
        b1 = ORDER B by b1; 
        GENERATE SetDifference(a1,b1); 
       } 

DUMP diff; 
+0

由于分布及其工作 –

+0

@sampatkumar Great.Can你请标明它回答的jar文件? –