以下示例来自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)})
答案 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