Available reductions



delimiter is configurable), determine the geographic midpoint. See “geographic midpoint” at: For implementation algorithm, see:


public Schema transform(Schema inputSchema)
  • param delim Delimiter for the coordinates in text format. For example, if format is “lat,long” use “,”



A StringReducer is used to take a set of examples and reduce them. The idea: suppose you have a large number of columns, and you want to combine/reduce the values in each column. StringReducer allows you to specify different reductions for differently for different columns: min, max, sum, mean etc.

Uses are: (1) Reducing examples by a key (2) Reduction operations in time series (windowing ops, etc)


public Schema transform(Schema schema)

Get the output schema, given the input schema


public Builder outputColumnName(String outputColumnName)

Create a StringReducer builder, and set the default column reduction operation. For any columns that aren’t specified explicitly, they will use the default reduction operation. If a column does have a reduction operation explicitly specified, then it will override the default specified here.

  • param defaultOp Default reduction operation to perform


public Builder appendColumns(String... columns)

Reduce the specified columns by taking the minimum value


public Builder prependColumns(String... columns)

Reduce the specified columns by taking the maximum value


public Builder mergeColumns(String... columns)

Reduce the specified columns by taking the sum of values


public Builder replaceColumn(String... columns)

Reduce the specified columns by taking the mean of the values


public Builder customReduction(String column, ColumnReduction columnReduction)

Reduce the specified column using a custom column reduction functionality.

  • param column Column to execute the custom reduction functionality on

  • param columnReduction Column reduction to execute on that column


public Builder setIgnoreInvalid(String... columns)

When doing the reduction: set the specified columns to ignore any invalid values. Invalid: defined as being not valid according to the ColumnMetaData: {- link ColumnMetaData#isValid(Writable)}. For numerical columns, this typically means being unable to parse the Writable. For example, Writable.toLong() failing for a Long column. If the column has any restrictions (min/max values, regex for Strings etc) these will also be taken into account.

  • param columns Columns to set ‘ignore invalid’ for

Last updated