使用Pig中的公共字段加入多个关系而不提供任何输出

时间:2015-06-04 09:13:01

标签: apache-pig

我有两个关系r1和r2。

grunt>describe r1;
r1: {f1: chararray,ts: chararray}

grunt>describe r2;
r2: {f2:chararray,ts: chararray}

我想加入ts上的两个关系来获得像这样的输出

(f1,f2)

This是我尝试过的(没有找到与我的案例相关的评论)。

grunt>j = join r1 by ts,r2 by ts;
grunt>O = foreach j generate CONCAT(r1::f1,r2::f2);
grunt>describe O;
O: {chararray}
grunt>dump O;

我没有在转储O上获得任何输出。我是猪的新手所以请解释。

1 个答案:

答案 0 :(得分:1)

此处我使用的数据:

DATA1

 f1a    10
 f1b    12

DATA2

 f2a    10
 f2b    11
 f2c    12

如果我运行以下脚本,它会产生预期的结果:

 grunt> a = LOAD 'data1' as (f1:chararray, ts:int);
 grunt> b = LOAD 'data2' as (f2:chararray, ts:int);

 grunt> c = JOIN a BY ts, b BY ts;
 grunt> DESCRIBE c;
 c: {a::f1: chararray,a::ts: int,b::f2: chararray,b::ts: int}

 grunt> d = FOREACH c GENERATE CONCAT(f1, f2);
 grunt> DUMP d
 (f1af2a)
 (f1bf2c)