2017-04-22 36 views
0

我是編程界的新手,我正在學習Hadoop。在寫豬查詢時,我得到了意想不到的輸出結果。我試過的查詢是我通過在PIG中執行JOIN操作來發生錯誤?

D = LOAD 'data1' AS (a:int,b:int); 
S = LOAD 'data2' AS (c:int,d:int); 
J = JOIN D by a, S by c; 
DUMP J; 

我插入outup和數據集。我的要求是隻獲得數據1和第一列數據2(組合)的第一欄,但我得到了低於

我無法插入我想要的方式。

O/P:

(1,2,1,3) 
(4,3,4,9) 
(4,3,4,6) 
(4,2,4,9) 
(4,2,4,6) 
(8,3,8,6) 
(8,3,8,9) 

數據組:

數據1:

1 2 
4 2 
8 3 
4 3 
7 2 
8 4 

數據2:

2 4 
8 9 
1 3 
2 7 
2 9 
4 6 
4 9 
+0

數據集中的數據不在一行中,即1和2將在第1行中具有/ t空間,然後4和2將在另一行中具有/ t空間,等等。我無法以我想要的方式插入。 – user2815076

+0

您將加入2欄的2列....您爲什麼期望小於4? –

回答

0

我的要求是ONL y獲得第一列數據1和第一列數據2

然後,您需要另一個別名來提取連接的數據。

J = JOIN D by a, S by c; 
X = FOREACH J GENERATE $0, $2; 
DUMP X; 

然而,那將導致相同的數字,例如,所以我不知道這是你想要的

1 1 
4 4 
4 4 

因此,你可能要考慮外連接,所以你不要只得到匹配值

J = JOIN D by a LEFT OUTER, S by c; 

我不記得什麼結果上的加入右側,但可能是NULL

相關問題