下面的示例取自apache文档。我的疑问是,当使用具有多个关系的null和cogroup操作符时,我们是如何在输出中得到null元组的。
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条答案
按热度按时间q35jwt9p1#
默认情况下,cogroup将在两个关系之间进行外部连接,这就是您在输出中看到null的原因。
如果你做了内部连接,你不会得到这个空值。
此文档将提供有关cogroup和null的更多信息。
http://chimera.labs.oreilly.com/books/1234000001811/ch06.html#cogroup