1

How to optimize a group by statement in PIG latin? で提供されているソリューションを実装している間 1 つの null 列を含むすべての行が削除されていることがわかりました。これは、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はデータフロースクリプト言語であり、nullを修正する追加のFOREACH GENERATEを追加しても、追加のマップリデュースジョブは発生しません。

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 に答える