cascading.pipe.assembly
Class AverageBy

java.lang.Object
  extended by cascading.pipe.Pipe
      extended by cascading.pipe.SubAssembly
          extended by cascading.pipe.assembly.AggregateBy
              extended by cascading.pipe.assembly.AverageBy
All Implemented Interfaces:
FlowElement, Traceable, Serializable

public class AverageBy
extends AggregateBy

Class AverageBy is used to average values associated with duplicate keys in a tuple stream.

Typically finding the average value in a tuple stream relies on a GroupBy and a Average Aggregator operation.

If the given averageFields has an associated type, this type will be used to coerce the resulting average value, otherwise the result will be a Double.

If include is AverageBy.Include.NO_NULLS, null values will not be included in the average (converted to zero). By default (and for backwards compatibility) null values are included, AverageBy.Include.ALL.

This SubAssembly uses the AverageBy.AveragePartials AggregateBy.Functor and private AverageBy.AverageFinal Aggregator to count and sum as many field values before the GroupBy operator to reduce IO over the network.

This strategy is similar to using combiners, except no sorting or serialization is invoked and results in a much simpler mechanism.

The threshold value tells the underlying AveragePartials functions how many unique key sums and counts to accumulate in the LRU cache, before emitting the least recently used entry.

By default, either the value of AggregateBy.AGGREGATE_BY_THRESHOLD System property or AggregateBy.DEFAULT_THRESHOLD will be used.

See Also:
AggregateBy, Serialized Form

Nested Class Summary
static class AverageBy.AverageFinal
          Class AverageFinal is used to finalize the average operation on the Reduce side of the process.
static class AverageBy.AveragePartials
          Class AveragePartials is a AggregateBy.Functor that is used to count and sum observed duplicates from the tuple stream.
static class AverageBy.Include
           
 
Nested classes/interfaces inherited from class cascading.pipe.assembly.AggregateBy
AggregateBy.Cache, AggregateBy.CompositeFunction, AggregateBy.Flush, AggregateBy.Functor
 
Field Summary
static int DEFAULT_THRESHOLD
          Deprecated. 
 
Fields inherited from class cascading.pipe.assembly.AggregateBy
AGGREGATE_BY_THRESHOLD, USE_DEFAULT_THRESHOLD
 
Fields inherited from class cascading.pipe.Pipe
configDef, parent, stepConfigDef
 
Constructor Summary
AverageBy(Fields valueField, Fields averageField)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(Fields valueField, Fields averageField, AverageBy.Include include)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(Pipe[] pipes, Fields groupingFields, Fields valueField, Fields averageField)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(Pipe[] pipes, Fields groupingFields, Fields valueField, Fields averageField, AverageBy.Include include)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(Pipe[] pipes, Fields groupingFields, Fields valueField, Fields averageField, AverageBy.Include include, int threshold)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(Pipe[] pipes, Fields groupingFields, Fields valueField, Fields averageField, int threshold)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(Pipe pipe, Fields groupingFields, Fields valueField, Fields averageField)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(Pipe pipe, Fields groupingFields, Fields valueField, Fields averageField, AverageBy.Include include)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(Pipe pipe, Fields groupingFields, Fields valueField, Fields averageField, AverageBy.Include include, int threshold)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(Pipe pipe, Fields groupingFields, Fields valueField, Fields averageField, int threshold)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(String name, Pipe[] pipes, Fields groupingFields, Fields valueField, Fields averageField)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(String name, Pipe[] pipes, Fields groupingFields, Fields valueField, Fields averageField, AverageBy.Include include)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(String name, Pipe[] pipes, Fields groupingFields, Fields valueField, Fields averageField, AverageBy.Include include, int threshold)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(String name, Pipe[] pipes, Fields groupingFields, Fields valueField, Fields averageField, int threshold)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(String name, Pipe pipe, Fields groupingFields, Fields valueField, Fields averageField)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(String name, Pipe pipe, Fields groupingFields, Fields valueField, Fields averageField, AverageBy.Include include)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(String name, Pipe pipe, Fields groupingFields, Fields valueField, Fields averageField, AverageBy.Include include, int threshold)
          Constructor AverageBy creates a new AverageBy instance.
AverageBy(String name, Pipe pipe, Fields groupingFields, Fields valueField, Fields averageField, int threshold)
          Constructor AverageBy creates a new AverageBy instance.
 
Method Summary
 
Methods inherited from class cascading.pipe.assembly.AggregateBy
getAggregators, getArgumentFields, getFieldDeclarations, getFunctors, getGroupBy, getGroupingFields, getThreshold, initialize, initialize, verify
 
Methods inherited from class cascading.pipe.SubAssembly
getName, getPrevious, getTailNames, getTails, setPrevious, setTails, unwind
 
Methods inherited from class cascading.pipe.Pipe
equals, getConfigDef, getHeads, getParent, getStepConfigDef, getTrace, hasConfigDef, hashCode, hasStepConfigDef, id, isEquivalentTo, named, names, outgoingScopeFor, pipes, print, printInternal, resolveIncomingOperationArgumentFields, resolveIncomingOperationPassThroughFields, setParent, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

DEFAULT_THRESHOLD

@Deprecated
public static final int DEFAULT_THRESHOLD
Deprecated. 
DEFAULT_THRESHOLD

See Also:
Constant Field Values
Constructor Detail

AverageBy

@ConstructorProperties(value={"valueField","averageField"})
public AverageBy(Fields valueField,
                                            Fields averageField)
Constructor AverageBy creates a new AverageBy instance. Use this constructor when used with a AggregateBy instance.

Parameters:
valueField - of type Fields
averageField - of type Fields

AverageBy

@ConstructorProperties(value={"valueField","averageField","include"})
public AverageBy(Fields valueField,
                                            Fields averageField,
                                            AverageBy.Include include)
Constructor AverageBy creates a new AverageBy instance. Use this constructor when used with a AggregateBy instance.

Parameters:
valueField - of type Fields
averageField - of type Fields
include - of type boolean

AverageBy

@ConstructorProperties(value={"pipe","groupingFields","valueField","averageField"})
public AverageBy(Pipe pipe,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
pipe - of type Pipe
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields

AverageBy

@ConstructorProperties(value={"pipe","groupingFields","valueField","averageField","threshold"})
public AverageBy(Pipe pipe,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField,
                                            int threshold)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
pipe - of type Pipe
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields
threshold - of type int

AverageBy

@ConstructorProperties(value={"name","pipe","groupingFields","valueField","averageField"})
public AverageBy(String name,
                                            Pipe pipe,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
name - of type String
pipe - of type Pipe
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields

AverageBy

@ConstructorProperties(value={"name","pipe","groupingFields","valueField","averageField","threshold"})
public AverageBy(String name,
                                            Pipe pipe,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField,
                                            int threshold)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
name - of type String
pipe - of type Pipe
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields
threshold - of type int

AverageBy

@ConstructorProperties(value={"pipes","groupingFields","valueField","averageField"})
public AverageBy(Pipe[] pipes,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
pipes - of type Pipe[]
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields

AverageBy

@ConstructorProperties(value={"pipes","groupingFields","valueField","averageField","threshold"})
public AverageBy(Pipe[] pipes,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField,
                                            int threshold)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
pipes - of type Pipe[]
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields
threshold - of type int

AverageBy

@ConstructorProperties(value={"name","pipes","groupingFields","valueField","averageField"})
public AverageBy(String name,
                                            Pipe[] pipes,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
name - of type String
pipes - of type Pipe[]
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields

AverageBy

@ConstructorProperties(value={"name","pipes","groupingFields","valueField","averageField","threshold"})
public AverageBy(String name,
                                            Pipe[] pipes,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField,
                                            int threshold)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
name - of type String
pipes - of type Pipe[]
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields
threshold - of type int

AverageBy

@ConstructorProperties(value={"pipe","groupingFields","valueField","averageField","include"})
public AverageBy(Pipe pipe,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField,
                                            AverageBy.Include include)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
pipe - of type Pipe
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields
include - of type boolean

AverageBy

@ConstructorProperties(value={"pipe","groupingFields","valueField","averageField","include","threshold"})
public AverageBy(Pipe pipe,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField,
                                            AverageBy.Include include,
                                            int threshold)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
pipe - of type Pipe
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields
include - of type boolean
threshold - of type int

AverageBy

@ConstructorProperties(value={"name","pipe","groupingFields","valueField","averageField","include"})
public AverageBy(String name,
                                            Pipe pipe,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField,
                                            AverageBy.Include include)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
name - of type String
pipe - of type Pipe
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields
include - of type boolean

AverageBy

@ConstructorProperties(value={"name","pipe","groupingFields","valueField","averageField","include","threshold"})
public AverageBy(String name,
                                            Pipe pipe,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField,
                                            AverageBy.Include include,
                                            int threshold)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
name - of type String
pipe - of type Pipe
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields
include - of type boolean
threshold - of type int

AverageBy

@ConstructorProperties(value={"pipes","groupingFields","valueField","averageField","include"})
public AverageBy(Pipe[] pipes,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField,
                                            AverageBy.Include include)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
pipes - of type Pipe[]
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields
include - of type boolean

AverageBy

@ConstructorProperties(value={"pipes","groupingFields","valueField","averageField","include","threshold"})
public AverageBy(Pipe[] pipes,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField,
                                            AverageBy.Include include,
                                            int threshold)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
pipes - of type Pipe[]
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields
include - of type boolean
threshold - of type int

AverageBy

@ConstructorProperties(value={"name","pipes","groupingFields","valueField","averageField","include"})
public AverageBy(String name,
                                            Pipe[] pipes,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField,
                                            AverageBy.Include include)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
name - of type String
pipes - of type Pipe[]
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields
include - of type boolean

AverageBy

@ConstructorProperties(value={"name","pipes","groupingFields","valueField","averageField","include","threshold"})
public AverageBy(String name,
                                            Pipe[] pipes,
                                            Fields groupingFields,
                                            Fields valueField,
                                            Fields averageField,
                                            AverageBy.Include include,
                                            int threshold)
Constructor AverageBy creates a new AverageBy instance.

Parameters:
name - of type String
pipes - of type Pipe[]
groupingFields - of type Fields
valueField - of type Fields
averageField - of type Fields
include - of type boolean
threshold - of type int


Copyright © 2007-2014 Concurrent, Inc. All Rights Reserved.