// NB: RHS is large given the sample data, but in practice the logs on the LHS could be much larger
Pipe recoPipe = new Pipe( "reco", logsPipe );
recoPipe = new CoGroup( recoPipe, new Fields( "gps_geohash" ), shadeCheck, new Fields( "tree_geohash" ), new InnerJoin() );
// connect the taps, pipes, etc., into a flow
FlowDef flowDef = FlowDef.flowDef()
.setName( "copa" )
.addSource( gisPipe, gisTap )
.addTrap( gisPipe, trapTap )
.addCheckpoint( tsvCheck, tsvTap )
.addTailSink( parkPipe, parkTap )