比方說,我JOIN
兩個相似關係:如何在Pig中加入後刪除重複的列?
-- part looks like:
-- 1,5.3
-- 2,4.9
-- 3,4.9
-- original looks like:
-- 1,Anju,3.6,IT,A,1.6,0.3
-- 2,Remya,3.3,EEE,B,1.6,0.3
-- 3,akhila,3.3,IT,C,1.3,0.3
jnd = JOIN part BY $0, original BY $0;
輸出將是:
1,5.3,1,Anju,3.6,IT,A,1.6,0.3
2,4.9,2,Remya,3.3,EEE,B,1.6,0.3
3,4.9,3,akhila,3.3,IT,C,1.3,0.3
注意$0
在每個元組顯示兩次。 EG:
1,5.3,1,Anju,3.6,IT,A,1.6,0.3
^ ^
|-----|
我可以手動做刪除重複項:
jnd = foreach jnd generate $0,$1,$3,$4 ..;
有沒有辦法來動態刪除此?像remove(the duplicate key joiner)
。
據我所知目前沒有辦法與豬做這個。另外,除了我現在可以想到的解決方案之外,唯一的方法是'FOREACH foo GENERATE FLATTEN(remove(TOTUPLE(*),2));'where'2'是要移除和移除的列的位置是UDF。我認爲你的解決方案要好得多,但是你可以將它縮短爲'FOREACH jnd GENERATE $ 0,$ 1,$ 3 ..''。 – mr2ert
我希望有一種方法可以更輕鬆地完成此操作,但這裏有一個用於手動定義聯接輸出的好語法: http://stackoverflow.com/a/17273031/542620 – Freerobots