扩展Pig SUM功能

时间:2014-04-14 23:39:48

标签: apache-pig

如果包是空的,内置Pig SUM eval函数返回null。我怎样才能覆盖这个(尽可能简单)返回0而不是null。

  public class CustomSum extends SUM{
   // Which methods to override.
 }

或者我有什么方法可以在脚本中检查SUM是否返回null然后将其设为0。

例如:A = FOREACH(COGROUP OUTER)组为url,(1- $ d)+ $ d * SUM(a.values)为totalValue。

我正在做一个外部COGROUP。所以组中有一些记录没有值,在这种情况下我想返回常量(1- $ d)。但是,当SUM返回null时,totalValues变为null。

1 个答案:

答案 0 :(得分:0)

你可以在这里使用if else逻辑。如果SUM导致空值并且您希望它为零,则返回(1- $ d),否则返回整个总和。

A = FOREACH (COGROUP OUTER) GENERATE group as url , (1-$d)+$d*SUM(a.values)==null?(1-$d):(1-$d)+$d*SUM(a.values) as totalValue