2012-12-19 56 views
2

可能重複:
Pig Script: Join with multiple files加入文件A,B,C在Hadoop中

我做基於Hadoop的一個程序。 現在,我有三個文件A,B,C。我想加入他們,並遵循條件「A.one = B.one和A.two = C.one」;然後將結果存儲到文件D.

我對豬有所瞭解,但它的加入無法滿足這個命令。

+0

我不understant。 「A.one」是什麼意思? – Jacopofar

+0

我不知道如何表達,它像這樣的sql:select * from A,B,C where A.one = B.one and A.two = C.otherone。我知道關於豬多個文件加入的一些事情,但它可以滿足使用不同列和不同列數的關係。 – user1915338

回答

2

其實很容易在豬的兩步加入:

A=LOAD .. 
B=LOAD .. 
C=LOAD .. 

AB= JOIN A BY A.one,B BY B.One; 
D= JOIN AB BY A::two, C BY C.one; 
+0

感謝您的回覆。事實上,我有三個以上的文件,如果我這樣做,我會處理很多連接操作。你能否給我其他選擇 – user1915338

+0

當你要加入大量大文件時,你認爲這會發生嗎?如果一個或多個文件很小,可以使用'複製'來提示豬,它會將該表保存在內存中 –

+0

我知道使用關鍵字'複製'豬豬連接,但是此函數只能滿足條件A.one = B .one = C.one;但是,我需要A中的不同列,例如一個,兩個。如上A.one = B.one和A.two = C.one – user1915338

相關問題