1

在实现如何在 PIG latin 中优化 group by 语句中提供的解决方案时?我发现所有具有一个空列的行都被删除了,这是 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)

我收到一些解析错误。

4

1 回答 1

3

PIG 是一种数据流脚本语言,添加额外的 FOREACH GENERATE 来修复 null 不会导致额外的 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);
于 2012-09-28T14:06:04.503 回答