2016-05-12 2 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 пожалуйста отметьте это ответить? –

Смежные вопросы