具有空值的pig连接

xcitsw88  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(255)

在实现时提供的解决方案是如何用pig拉丁语优化groupby语句?我发现所有有一个空列的行都会被删除,这是pig的预期行为。我想知道下面的代码是否可以工作?

A = B join by ( Bcol1 is null?'UNK',Bcol2 is null?'UNK',Bcol2 is null?999),
C join by ( Ccol1 is null?'UNK',Ccol2 is null?'UNK',Ccol2 is null?999)

我得到一些解析错误。

9udxz4iz

9udxz4iz1#

pig是一种数据流脚本语言,添加额外的foreach generate修复空值不会导致额外的map reduce作业。

B = foreach B generate ....., (Bcol1 is null) ? 'UNK' : Bcol1 as Bcol1, (Bcol2 is null) ? 'UNK' : Bcol2 as Bcol2, (Bcol3 is null) ? 999 : Bcol3;
C = foreach C generate ....., (Ccol1 is null) ? 'UNK' : Ccol1 as Ccol1, (Ccol2 is null) ? 'UNK' : Ccol2 as Ccol2, (Ccol3 is null) ? 999 : Ccol3;
A = join B by (Bcol1, Bcol2, Bcol3), C by (Ccol1, Ccol2, Ccol3);

相关问题