org.apache.pig.builtin
Class LongSum

java.lang.Object
  extended by org.apache.pig.EvalFunc<Long>
      extended by org.apache.pig.builtin.LongSum
All Implemented Interfaces:
Accumulator<Long>, Algebraic

public class LongSum
extends EvalFunc<Long>
implements Algebraic, Accumulator<Long>

Generates the sum of the Long values in the first field of a tuple.


Nested Class Summary
static class LongSum.Final
           
static class LongSum.Initial
           
static class LongSum.Intermediate
           
 
Field Summary
 
Fields inherited from class org.apache.pig.EvalFunc
log, pigLogger, reporter, returnType
 
Constructor Summary
LongSum()
           
 
Method Summary
 void accumulate(Tuple b)
          Pass tuples to the UDF.
 void cleanup()
          Called after getValue() to prepare processing for next key.
 Long exec(Tuple input)
          This callback method must be implemented by all subclasses.
 String getFinal()
           
 String getInitial()
           
 String getIntermed()
           
 Long getValue()
          Called when all tuples from current key have been passed to accumulate.
 Schema outputSchema(Schema input)
           
protected static Long sum(Tuple input)
           
 
Methods inherited from class org.apache.pig.EvalFunc
finish, getArgToFuncMapping, getLogger, getPigLogger, getReporter, getReturnType, getSchemaName, isAsynchronous, progress, setPigLogger, setReporter, warn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LongSum

public LongSum()
Method Detail

exec

public Long exec(Tuple input)
          throws IOException
Description copied from class: EvalFunc
This callback method must be implemented by all subclasses. This is the method that will be invoked on every Tuple of a given dataset. Since the dataset may be divided up in a variety of ways the programmer should not make assumptions about state that is maintained between invocations of this method.

Specified by:
exec in class EvalFunc<Long>
Parameters:
input - the Tuple to be processed.
Returns:
result, of type T.
Throws:
IOException

getInitial

public String getInitial()
Specified by:
getInitial in interface Algebraic
Returns:
A string to instatiate f_init. f_init should be an eval func

getIntermed

public String getIntermed()
Specified by:
getIntermed in interface Algebraic
Returns:
A string to instantiate f_intermed. f_intermed should be an eval func

getFinal

public String getFinal()
Specified by:
getFinal in interface Algebraic
Returns:
A string to instantiate f_final. f_final should be an eval func parametrized by the same datum as the eval func implementing this interface

sum

protected static Long sum(Tuple input)
                   throws ExecException
Throws:
ExecException

outputSchema

public Schema outputSchema(Schema input)
Overrides:
outputSchema in class EvalFunc<Long>
Parameters:
input - Schema of the input
Returns:
Schema of the output

accumulate

public void accumulate(Tuple b)
                throws IOException
Description copied from interface: Accumulator
Pass tuples to the UDF. You can retrive DataBag by calling b.get(index). Each DataBag may contain 0 to many tuples for current key

Specified by:
accumulate in interface Accumulator<Long>
Throws:
IOException

cleanup

public void cleanup()
Description copied from interface: Accumulator
Called after getValue() to prepare processing for next key.

Specified by:
cleanup in interface Accumulator<Long>

getValue

public Long getValue()
Description copied from interface: Accumulator
Called when all tuples from current key have been passed to accumulate.

Specified by:
getValue in interface Accumulator<Long>
Returns:
the value for the UDF for this key.


Copyright © ${year} The Apache Software Foundation