use of org.apache.flink.optimizer.testfunctions.IdentityJoiner in project flink by apache.
the class BranchingPlansCompilerTest method testClosureDeltaIteration.
/**
* <pre>
* (SRC A) (SRC B) (SRC C)
* / \ / / \
* (SINK 1) (DELTA ITERATION) | (SINK 2)
* / | \ /
* (SINK 3) | (CROSS => NEXT WORKSET)
* | |
* (JOIN => SOLUTION SET DELTA)
* </pre>
*/
@Test
public void testClosureDeltaIteration() {
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(DEFAULT_PARALLELISM);
DataSet<Tuple2<Long, Long>> sourceA = env.generateSequence(0, 1).map(new Duplicator<Long>());
DataSet<Tuple2<Long, Long>> sourceB = env.generateSequence(0, 1).map(new Duplicator<Long>());
DataSet<Tuple2<Long, Long>> sourceC = env.generateSequence(0, 1).map(new Duplicator<Long>());
sourceA.output(new DiscardingOutputFormat<Tuple2<Long, Long>>());
sourceC.output(new DiscardingOutputFormat<Tuple2<Long, Long>>());
DeltaIteration<Tuple2<Long, Long>, Tuple2<Long, Long>> loop = sourceA.iterateDelta(sourceB, 10, 0);
DataSet<Tuple2<Long, Long>> workset = loop.getWorkset().cross(sourceB).with(new IdentityCrosser<Tuple2<Long, Long>>()).name("Next work set");
DataSet<Tuple2<Long, Long>> delta = workset.join(loop.getSolutionSet()).where(0).equalTo(0).with(new IdentityJoiner<Tuple2<Long, Long>>()).name("Solution set delta");
DataSet<Tuple2<Long, Long>> result = loop.closeWith(delta, workset);
result.output(new DiscardingOutputFormat<Tuple2<Long, Long>>());
Plan plan = env.createProgramPlan();
try {
compileNoStats(plan);
} catch (Exception e) {
e.printStackTrace();
Assert.fail(e.getMessage());
}
}
Aggregations