我在PIG中执行JOIN操作会出错?

时间:2017-04-22 16:19:41

标签: hadoop apache-pig

我是编程世界的新手,我正在学习Hadoop。在编写猪查询时,我得到意外的输出。我试过的查询是

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;

我正在插入输出和数据集。我的要求只是得到第一列数据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

1 个答案:

答案 0 :(得分:0)

  

我的要求只是获取第一列数据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