com.ebay.erl.mobius.core.function
Class Medium

java.lang.Object
  extended by com.ebay.erl.mobius.core.function.base.Projectable
      extended by com.ebay.erl.mobius.core.function.base.GroupFunction
          extended by com.ebay.erl.mobius.core.function.base.AggregateFunction
              extended by com.ebay.erl.mobius.core.function.base.SingleInputAggregateFunction
                  extended by com.ebay.erl.mobius.core.function.Medium
All Implemented Interfaces:
java.io.Serializable, org.apache.hadoop.conf.Configurable

public class Medium
extends SingleInputAggregateFunction

Gets the medium value of the inputColumn in a group. The ordering is natural ordering by default, user can override the ordering by providing a comparator.

This product is licensed under the Apache License, Version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0. This product contains portions derived from Apache hadoop which is licensed under the Apache License, Version 2.0, available at http://hadoop.apache.org. © 2007 – 2012 eBay Inc., Evan Chiu, Woody Zhou, Neel Sundaresan

See Also:
Serialized Form

Field Summary
 
Fields inherited from class com.ebay.erl.mobius.core.function.base.SingleInputAggregateFunction
inputColumnName
 
Fields inherited from class com.ebay.erl.mobius.core.function.base.AggregateFunction
aggregateResult
 
Fields inherited from class com.ebay.erl.mobius.core.function.base.GroupFunction
rowsToBeOutputted
 
Fields inherited from class com.ebay.erl.mobius.core.function.base.Projectable
conf, hashCode, inputs, outputSchema, reporter, requireDataFromMultiDatasets
 
Constructor Summary
Medium(Column inputColumn)
          Create an instance of Medium operation to get the medium value of the given inputColumn within a group.
Medium(Column inputColumn, java.lang.Class<? extends java.util.Comparator<Tuple>> comparator)
          Create an instance of Medium operation to get the medium value of the given inputColumn within a group.
 
Method Summary
 void consume(Tuple tuple)
          consume a value within a group, to be implemented by sub-class.
 Tuple getComputedResult()
          Return the computed result in a Tuple.
protected  BigTupleList newBigTupleList()
          override from parent to have the returned BigTupleList use user defined comparator, if any.
 void reset()
          Empty previous result (rowsToBeOutputted), reset is called when the values within a group have been all iterated.
 
Methods inherited from class com.ebay.erl.mobius.core.function.base.AggregateFunction
getResult, output
 
Methods inherited from class com.ebay.erl.mobius.core.function.base.GroupFunction
getNoMatchResult, getRowsToBeOutputted
 
Methods inherited from class com.ebay.erl.mobius.core.function.base.Projectable
calledByCombiner, equals, getConf, getInputColumns, getOutputSchema, getParticipatedDataset, hashCode, init, isCombinable, requireDataFromMultiDatasets, setCalledByCombiner, setConf, setOutputSchema, setReporter, toString, useGroupKeyOnly
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Medium

public Medium(Column inputColumn)
Create an instance of Medium operation to get the medium value of the given inputColumn within a group.

The comparing is natural ordering.


Medium

public Medium(Column inputColumn,
              java.lang.Class<? extends java.util.Comparator<Tuple>> comparator)
Create an instance of Medium operation to get the medium value of the given inputColumn within a group.

The comparing is done by user specified comparator.

Method Detail

newBigTupleList

protected BigTupleList newBigTupleList()
override from parent to have the returned BigTupleList use user defined comparator, if any.

Overrides:
newBigTupleList in class AggregateFunction

consume

public void consume(Tuple tuple)
Description copied from class: GroupFunction
consume a value within a group, to be implemented by sub-class.

Specified by:
consume in class GroupFunction

getComputedResult

public Tuple getComputedResult()
Description copied from class: SingleInputAggregateFunction
Return the computed result in a Tuple.

By default, the returned Tuple contains only one column, the name of the column is the first element in the Projectable.getOutputSchema().

Override this method if there is a need to output a Tuple with more than one column.

Overrides:
getComputedResult in class SingleInputAggregateFunction

reset

public void reset()
Description copied from class: GroupFunction
Empty previous result (rowsToBeOutputted), reset is called when the values within a group have been all iterated.

It is important to call super.reset() when override this method in a sub-class, fail to do so, will result in wrong result.

Overrides:
reset in class AggregateFunction