0

内でPIGで次のことを達成するにはどうすればよいですかforeach:

REL = foreach RELS {
 if ( cnt == 0 )
 limited_result = NULL/Empty;
 else
 limited_result = LIMIT results cnt ;

 generate limited_result.some_field;
}

LIMIT「cnt」が 0 より大きいことを検証するため、は使用できません。を使用しようとしましたがSPLIT、 ではサポートされていないようですforeach

4

1 に答える 1

2

FILTERあなたの前にingはどうFOREACHですか?

REL = foreach (filter RELS by cnt > 0) {
 limited_result = LIMIT results cnt ;
 generate limited_result.some_field;
}

cntが 0のレコードがまだ必要な場合は、最初にが 0SPLITのときに空のバッグを生成できます。cnt

split RELS into ZERO if cnt == 0, NONZERO if cnt > 0;

NZ_LIM = foreach NONZERO {
 result = LIMIT results cnt ;
 generate limited_result.some_field;
}
Z_LIM = foreach ZERO generate {} as some_field;

REL = union NZ_LIM, Z_LIM;
于 2013-01-22T18:43:30.253 に答える