猪加入两个关系只与加入伙伴
Pig join two Relations only with join partner
我是 Pig Latin 编程的新手,我有一个问题。
假设我有以下两个关系(A 和 B):
Relation A: http://i.stack.imgur.com/Aa5Rd.png
Relation B: http://i.stack.imgur.com/m467q.png
现在,应该连接关系,但前提是 A 中存在键 (id)。否则不会。所以结果应该是这样的:
关系 Result: i.stack.imgur.com/3elgh.png
(我不能 post 超过 2 个链接)
我该如何解决?
我的方法 result = JOIN A BY id, B BY id; 因为它创建了与所有 id 和文本的结果关系: /
非常感谢您,
斯特凡诺斯
你的做法是对的。正如你提到的,我得到了正确的输出,但不确定为什么你没有得到输出。你能用下面的交叉检查你的 pigscript 吗?
输入1:
1
4
6
输入2:
1,peter
2,jay
3,dan
4,knut
5,Gnu
6,rafael
7,hans
PigScript:
A = LOAD 'input1' AS (id:int);
B = LOAD 'input2' USING PigStorage(',') AS (id:int,text:chararray);
C = JOIN A BY id,B BY id;
D = FOREACH C GENERATE A::id AS id,B::text as text;
DUMP D;
输出:
(1,peter)
(4,knut)
(6,rafael)
我是 Pig Latin 编程的新手,我有一个问题。
假设我有以下两个关系(A 和 B):
Relation A: http://i.stack.imgur.com/Aa5Rd.png
Relation B: http://i.stack.imgur.com/m467q.png
现在,应该连接关系,但前提是 A 中存在键 (id)。否则不会。所以结果应该是这样的:
关系 Result: i.stack.imgur.com/3elgh.png
(我不能 post 超过 2 个链接)
我该如何解决?
我的方法 result = JOIN A BY id, B BY id; 因为它创建了与所有 id 和文本的结果关系: /
非常感谢您,
斯特凡诺斯
你的做法是对的。正如你提到的,我得到了正确的输出,但不确定为什么你没有得到输出。你能用下面的交叉检查你的 pigscript 吗?
输入1:
1
4
6
输入2:
1,peter
2,jay
3,dan
4,knut
5,Gnu
6,rafael
7,hans
PigScript:
A = LOAD 'input1' AS (id:int);
B = LOAD 'input2' USING PigStorage(',') AS (id:int,text:chararray);
C = JOIN A BY id,B BY id;
D = FOREACH C GENERATE A::id AS id,B::text as text;
DUMP D;
输出:
(1,peter)
(4,knut)
(6,rafael)