具有多种关系的Apache Pig Nulls和COGROUP Operators

时间:2014-11-18 06:22:24

标签: operators apache-pig

以下示例来自Apache Document。我的疑问是当使用具有多个关系的Nulls和COGROUP运算符时,我们如何在输出中得到零元组。

A = load 'student' as (name:chararray, age:int, gpa:float);

B = load 'student' as (name:chararray, age:int, gpa:float);
dump B;
(joe,18,2.5)
(sam,,3.0)
(bob,,3.5)

X = cogroup A by age, B by age;

dump X;

(18,{(joe,18,2.5)},{(joe,18,2.5)})
(,{(sam,,3.0),(bob,,3.5)},{})
(,{},{(sam,,3.0),(bob,,3.5)})    

1 个答案:

答案 0 :(得分:1)

默认情况下, COGROUP 会在两个关系之间执行 OUTER JOIN ,这就是您在输出中看到null的原因。

如果您执行 INNER JOIN ,则不会获得此null。

C = cogroup A by age INNER, B by age INNER;

本文档将提供有关cogroup和Null的更多信息 http://chimera.labs.oreilly.com/books/1234000001811/ch06.html#cogroup