用猪插入关系?

时间:2014-01-03 21:28:45

标签: apache-pig

假设我有两个数据集:

A = LOAD 'data1' AS (a1:int,a2:int,a3:int);


DUMP A;
(1,2,3)
(4,2,1)
(8,3,4)
(4,3,3)
(7,2,5)
(8,4,3)

B = LOAD 'data2' AS (b1:int,b2:int);

DUMP B;
(2,4)
(8,9)
(1,3)
(2,7)
(2,9)
(4,6)
(4,9)

有没有办法将B中的特定元组插入A?所以最终结果看起来类似于:

DUMP C;
(1,2,3)
(2,4)
(4,2,1)
(8,9)
...

2 个答案:

答案 0 :(得分:0)

您能否告诉我们A和B所需的字段以及输出的结构?操作中是否有任何主键?

如果A和B中有相同的字段您可以执行相同的Join

答案 1 :(得分:0)

听起来你在谈论执行联盟。如果你的两个关系共享相同的模式,那么你可以这样做:

C = UNION A,B;    -- won't work

但是,既然他们不这样做,你就无法将他们联合起来。但是,您可以更改B的架构,使其与A:

匹配
B = FOREACH B GENERATE 
              b1 as a1, 
              b2 as a2,
              0  as a3; -- dummy value so can union

我不确定你选择“特定元组”是什么意思。您当然可以总是过滤B,使其仅包含符合某些条件的元组。您能否提供有关您的用例以及您想要实现的目标的更多信息?