gpt4 book ai didi

hadoop - Apache PIG : apply LIMIT only if parameter is > 0

转载 作者:可可西里 更新时间:2023-11-01 16:34:11 26 4
gpt4 key购买 nike

如何在 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 中不受支持。

最佳答案

FOREACH 之前 FILTER 怎么样?

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

如果还需要cnt为0的记录,可以先SPLIT,然后在cnt为0时生成一个空包:

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;

关于hadoop - Apache PIG : apply LIMIT only if parameter is > 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14465632/

26 4 0