apache pig nulls和具有多个关系的cogroup运算符

wlp8pajw  于 2021-06-25  发布在  Pig
关注(0)|答案(1)|浏览(402)

下面的示例取自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)})
q35jwt9p

q35jwt9p1#

默认情况下,cogroup将在两个关系之间进行外部连接,这就是您在输出中看到null的原因。
如果你做了内部连接,你不会得到这个空值。

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

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

相关问题