Cook Book

Some common patterns.

Copy a value

pipe = new Each( pipe, new Fields( "field" ), new Identity( new Fields( "copy" ) ), 
  Fields.ALL );

Rename a field

// two incoming fields: "other" and "field"
pipe = new Each( pipe, new Fields( "field" ), new Identity( new Fields( "renamed" ) ), 
  new Fields( "other", "renamed" ) );

Convert strings to primitive types

Class[] types = new Class[] {Long.class, Float.class, Boolean.class};
pipe = new Each( pipe, new Fields( "longField", "floatField", "booleanField" ), 
  new Identity( types ) );

Reorder fields

// two incoming fields: "field1" and "field2"
pipe = new Each( pipe, new Fields( "field2", "field1" ), new Identity() );

Discard unused fields

// two incoming fields: "field1" and "field2"
pipe = new Each( pipe, new Fields( "field2" ), new Identity() );

Sort values passed to Aggregator

pipe = new GroupBy( pipe, new Fields( "group1", "group2" ), 
  new Fields( "value" ) );

Insert constant values into a value stream

pipe = new Each( pipe, new Insert( new Fields( "field1", "field2" ), 
  "value1", "value2" ), Fields.ALL );

Create 'timestamp' from date/time fields

// build 'datetime' string.
FieldFormatter formatter = new FieldFormatter( new Fields( "datetime" ), 
  "%s:%s:%s:%s:%s:%s.%s" );
Fields timeFields = new Fields( "year", "month", "day", "hour", "minute", 
  "second", "millisecond" );
pipe = new Each( pipe, timeFields, formatter, Fields.ALL );

// creates a new field named 'ts' for the timestamp
pipe = new Each( pipe, new Fields( "datetime" ), 
  new DateParser( "yyyy:MM:dd:HH:mm:ss.SSS" ), Fields.ALL );

Create date/time string from 'timestamp' field

DateFormatter timeFormatter = new DateFormatter( 
  new Fields( "datetime" ), "HH:mm:ss.SSS" );
pipe = new Each( pipe, new Fields( "ts" ), timeFormatter, sortFields );

Get 'DISTINCT' values from a Tuple stream

// group on all values
pipe = new GroupBy( pipe, Fields.ALL );
// only take the first value in the grouping, ignore the rest
pipe = new Every( pipe, Fields.ALL, new First(), Fields.RESULTS );