appliedSet.withForwardedFieldsFirst("0").withForwardedFieldsSecond("0");
.name(JOIN_WITH_SOLUTION_SET); if(joinPreservesSolutionSet) { ((JoinOperator<?,?,?>)join2).withForwardedFieldsFirst("*");
inputFields[1], keyFields[1])) .returns(tupleJoinListsTypeInfo) .withForwardedFieldsFirst(listKeysFwd) .setParallelism(dop) .name("coGroup-" + node.getID()); .with(new TupleAppendOuterJoiner(i, numJoinInputs, inputFields[i], keyFields[i])) .returns(tupleJoinListsTypeInfo) .withForwardedFieldsFirst(listKeys) .setParallelism(dop) .name("coGroup-" + node.getID());
/** * Extracts a {@link GraphCollection} from a set of {@link Element} and * attaches the original data from the input {@link LogicalGraph}. * * @param elements EPGM elements * @param inputGraph original input graph * @param mayOverlap true, if elements may be contained in multiple graphs * @return Graph collection */ public static GraphCollection extractGraphCollectionWithData( DataSet<Element> elements, LogicalGraph inputGraph, boolean mayOverlap) { GradoopFlinkConfig config = inputGraph.getConfig(); // get result collection without data GraphCollection collection = extractGraphCollection(elements, config, mayOverlap); // attach data by joining first and merging the graph head ids DataSet<Vertex> newVertices = inputGraph.getVertices() .rightOuterJoin(collection.getVertices()) .where(new Id<>()).equalTo(new Id<>()) .with(new MergedGraphIds<>()) .withForwardedFieldsFirst("id;label;properties;"); DataSet<Edge> newEdges = inputGraph.getEdges() .rightOuterJoin(collection.getEdges()) .where(new Id<>()).equalTo(new Id<>()) .with(new MergedGraphIds<>()) .withForwardedFieldsFirst("id;label;properties"); return config.getGraphCollectionFactory().fromDataSets( collection.getGraphHeads(), newVertices, newEdges); } /**
/** * Extracts a {@link GraphCollection} from a set of {@link Element} and * attaches the original data from the input {@link LogicalGraph}. * * @param elements EPGM elements * @param inputGraph original input graph * @param mayOverlap true, if elements may be contained in multiple graphs * @return Graph collection */ public static GraphCollection extractGraphCollectionWithData( DataSet<Element> elements, LogicalGraph inputGraph, boolean mayOverlap) { GradoopFlinkConfig config = inputGraph.getConfig(); // get result collection without data GraphCollection collection = extractGraphCollection(elements, config, mayOverlap); // attach data by joining first and merging the graph head ids DataSet<Vertex> newVertices = inputGraph.getVertices() .rightOuterJoin(collection.getVertices()) .where(new Id<>()).equalTo(new Id<>()) .with(new MergedGraphIds<>()) .withForwardedFieldsFirst("id;label;properties;"); DataSet<Edge> newEdges = inputGraph.getEdges() .rightOuterJoin(collection.getEdges()) .where(new Id<>()).equalTo(new Id<>()) .with(new MergedGraphIds<>()) .withForwardedFieldsFirst("id;label;properties"); return config.getGraphCollectionFactory().fromDataSets( collection.getGraphHeads(), newVertices, newEdges); } /**
.with(new TupleAppendJoiner(i)) .returns(tupleJoinListsTypeInfo) .withForwardedFieldsFirst(flinkKeys[0]) .setParallelism(probeSideDOP) .name("hashjoin-" + node.getID());
.with(new TupleAppendJoiner(i)) .returns(tupleJoinListsTypeInfo) .withForwardedFieldsFirst(flinkKeys[0]) .setParallelism(probeSideDOP) .name("hashjoin-" + node.getID());
appliedSet.withForwardedFieldsFirst("0").withForwardedFieldsSecond("0");
appliedSet.withForwardedFieldsFirst("0").withForwardedFieldsSecond("0");
appliedSet.withForwardedFieldsFirst("0").withForwardedFieldsSecond("0");