// break not names and movies
pipe = new Each( pipe, new UnGroup( new Fields( "name", "movie", "rate" ), Fields.FIRST, 2 ) );
// name and rate against others of same movie
pipe = new EuclideanDistance( pipe, new Fields( "name", "movie", "rate" ), new Fields( "name1", "name2", "distance" ) );
Flow flow = getPlatform().getFlowConnector().connect( source, sink, pipe );
flow.complete();