2017-02-09 5 views
0

У меня 2 отношений:копирование данных из одного отношения к другому в PIG

соотношение А:

101,Ankit-Reddy,08022017 
102,Siddarth-Battacharya,08022017 
103,Rajesh-Khanna,08022017 

и связь Б:

102,Ronit-Roy,09022017 
103,Ranveer-Singh,09022017 
107,sadiya-some,09022017 
108,Raj-sharma,09022017 

так и в ID 102 и 103 в B имеет другую дату, и она является существующей записью, но 107,108 - это новые записи, поэтому она останется такой же. Как я обновить его до настоящего времени в А.

Мой финальный стол должен выглядеть следующим образом:

101,Ankit-Reddy,08022017 
102,Ronit-Roy,08022017 
103,Ranveer-Singh,08022017 
107,sadiya-some,09022017 
108,Raj-sharma,09022017 

Любой сценарий свинью за это.

ответ

0
  • Получить только записи в сказать A1
  • Получить только записи в B говорят B1
  • Регистрация А и B и создать запись с a1, b2, a3 сказать C1
  • Merge A1, B1 , C1-

    A = LOAD 'test1.txt' USING PigStorage(',') AS (a1:int,a2:chararray,a3:chararray); 
    B = LOAD 'test2.txt' USING PigStorage(',') AS (b1:int,b2:chararray,b3:chararray); 
    
    A_JOIN = JOIN A BY a1 LEFT OUTER,B BY b1; 
    A1 = FILTER A_JOIN BY b1 is null; 
    
    B_JOIN = JOIN A BY a1 RIGHT OUTER,B BY b1; 
    B1 = FILTER B_JOIN BY a1 is null; 
    
    C_JOIN = JOIN A BY a1,B by b1; 
    C1 = FOREACH C_JOIN GENERATE a1,b2,a3; 
    
    D = UNION A1,B1,C1; 
    

А1

101,Ankit-Reddy,08022017 

В1

107,sadiya-some,09022017 
108,Raj-sharma,09022017 

С1

102,Ronit-Roy,08022017 
103,Ranveer-Singh,08022017