我是编程世界的新手,我正在学习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
答案 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