.name("Concat Paths")
.build();
concatPaths.setDegreeOfParallelism(numSubTasks);
CoGroupOperator findShortestPaths =
CoGroupOperator.builder(new FindShortestPath(), StringValue.class, 0, 0)
.keyField(StringValue.class, 1, 1)
.name("Find Shortest Paths")
.build();
findShortestPaths.setDegreeOfParallelism(numSubTasks);
FileDataSink result = new FileDataSink(new PathOutFormat(),output, "New Paths");
result.setDegreeOfParallelism(numSubTasks);
result.setInput(findShortestPaths);
findShortestPaths.setFirstInput(pathsInput);
findShortestPaths.setSecondInput(concatPaths);
concatPaths.setFirstInput(pathsInput);
concatPaths.setSecondInput(pathsInput);
return new Plan(result, "Pairwise Shortest Paths");