/** * Initializes an {@link Edge} from a given {@link GradoopId} triple. The * triple consists of edge id, source vertex id and target vertex id. * * @param idTriple triple containing (in that order) edge id, source vertex * id, target vertex id * @return EPGM edge * @throws Exception */ @Override public Edge map(Tuple3<GradoopId, GradoopId, GradoopId> idTriple) throws Exception { return edgeFactory.initEdge(idTriple.f0, idTriple.f1, idTriple.f2); }
@SuppressWarnings("unchecked") @Override public TypeInformation<Edge> getProducedType() { return TypeExtractor.createTypeInfo(edgeFactory.getType()); } }
epgmEdges.add(edgeFactory.createEdge( edge.getLabel(), vertexIdMap.get(edge.getSourceId()),
epgmEdges.add(edgeFactory.createEdge( edge.getLabel(), vertexIdMap.get(edge.getSourceId()),
/** * Initializes an {@link Edge} from a given {@link GradoopId} triple. The * triple consists of edge id, source vertex id and target vertex id. * * @param idTriple triple containing (in that order) edge id, source vertex * id, target vertex id * @return EPGM edge * @throws Exception */ @Override public Edge map(Tuple3<GradoopId, GradoopId, GradoopId> idTriple) throws Exception { return edgeFactory.initEdge(idTriple.f0, idTriple.f1, idTriple.f2); }
@SuppressWarnings("unchecked") @Override public TypeInformation<Edge> getProducedType() { return TypeExtractor.createTypeInfo(edgeFactory.getType()); } }
/** * Outputs a pair of import target vertex id and new EPGM edge. The target * vertex id is used for further joining the tuple with the import vertices. * * @param importEdge import edge * @param vertexIdPair pair of import id and corresponding Gradoop vertex id * @return pair of import target vertex id and EPGM edge * @throws Exception */ @Override public Tuple2<K, Edge> join(ImportEdge<K> importEdge, Tuple2<K, GradoopId> vertexIdPair) throws Exception { reuseTuple.f0 = importEdge.getTargetId(); Edge edge = edgeFactory.createEdge(importEdge.getLabel(), vertexIdPair.f1, GradoopId.get(), importEdge.getProperties()); reuseTuple.f1 = updateLineage(edge, importEdge.getId()); return reuseTuple; }
/** * Initializes an EPGM edge using the specified parameters and adds its label * if the given edge was created for return pattern * * @param out flat map collector * @param graphHead graph head to assign edge to * @param edgeId edge identifier * @param sourceId source vertex identifier * @param targetId target vertex identifier * @param label label associated with edge */ private void initEdgeWithData(Collector<Element> out, GraphHead graphHead, GradoopId edgeId, GradoopId sourceId, GradoopId targetId, String label) { if (!processedIds.contains(edgeId)) { Edge e = edgeFactory.initEdge(edgeId, sourceId, targetId); e.addGraphId(graphHead.getId()); e.setLabel(label); out.collect(e); processedIds.add(edgeId); } } }
@Override public TypeInformation<Edge> getProducedType() { return TypeExtractor.createTypeInfo(edgeFactory.getType()); } }
/** * Outputs a pair of import target vertex id and new EPGM edge. The target * vertex id is used for further joining the tuple with the import vertices. * * @param importEdge import edge * @param vertexIdPair pair of import id and corresponding Gradoop vertex id * @return pair of import target vertex id and EPGM edge * @throws Exception */ @Override public Tuple2<K, Edge> join(ImportEdge<K> importEdge, Tuple2<K, GradoopId> vertexIdPair) throws Exception { reuseTuple.f0 = importEdge.getTargetId(); Edge edge = edgeFactory.createEdge(importEdge.getLabel(), vertexIdPair.f1, GradoopId.get(), importEdge.getProperties()); reuseTuple.f1 = updateLineage(edge, importEdge.getId()); return reuseTuple; }
/** * Initializes an EPGM edge using the specified parameters and adds its label * if the given edge was created for return pattern * * @param out flat map collector * @param graphHead graph head to assign edge to * @param edgeId edge identifier * @param sourceId source vertex identifier * @param targetId target vertex identifier * @param label label associated with edge */ private void initEdgeWithData(Collector<Element> out, GraphHead graphHead, GradoopId edgeId, GradoopId sourceId, GradoopId targetId, String label) { if (!processedIds.contains(edgeId)) { Edge e = edgeFactory.initEdge(edgeId, sourceId, targetId); e.addGraphId(graphHead.getId()); e.setLabel(label); out.collect(e); processedIds.add(edgeId); } } }
@Override public TypeInformation<Edge> getProducedType() { return TypeExtractor.createTypeInfo(edgeFactory.getType()); } }
/** * Reduces edge group items to a single edge group item, creates a new * super EPGM edge and collects it. * * @param edgeGroupItems edge group items * @param collector output collector * @throws Exception */ @Override public void reduce(Iterable<EdgeGroupItem> edgeGroupItems, Collector<Edge> collector) throws Exception { EdgeGroupItem edgeGroupItem = reduceInternal(edgeGroupItems); Edge superEdge = edgeFactory.createEdge( edgeGroupItem.getGroupLabel(), edgeGroupItem.getSourceId(), edgeGroupItem.getTargetId()); setGroupProperties( superEdge, edgeGroupItem.getGroupingValues(), edgeGroupItem.getLabelGroup()); setAggregateProperties(superEdge, edgeGroupItem.getLabelGroup().getAggregateValueList(), edgeGroupItem.getLabelGroup().getAggregateFunctions()); edgeGroupItem.getLabelGroup().resetAggregateValues(); collector.collect(superEdge); }
@Override protected E initFrom(E edge) { return edgeFactory.initEdge( edge.getId(), GradoopConstants.DEFAULT_EDGE_LABEL, edge.getSourceId(), edge.getTargetId(), edge.getGraphIds()); } }
/** * {@inheritDoc} */ @Override public TypeInformation<Tuple2<K, Edge>> getProducedType() { return new TupleTypeInfo<>(getKeyTypeInfo(), TypeExtractor.createTypeInfo(edgeFactory.getType())); } }
/** * Reduces edge group items to a single edge group item, creates a new * super EPGM edge and collects it. * * @param edgeGroupItems edge group items * @param collector output collector * @throws Exception */ @Override public void reduce(Iterable<EdgeGroupItem> edgeGroupItems, Collector<Edge> collector) throws Exception { EdgeGroupItem edgeGroupItem = reduceInternal(edgeGroupItems); Edge superEdge = edgeFactory.createEdge( edgeGroupItem.getGroupLabel(), edgeGroupItem.getSourceId(), edgeGroupItem.getTargetId()); setGroupProperties( superEdge, edgeGroupItem.getGroupingValues(), edgeGroupItem.getLabelGroup()); setAggregateProperties(superEdge, edgeGroupItem.getLabelGroup().getAggregateValueList(), edgeGroupItem.getLabelGroup().getAggregateFunctions()); edgeGroupItem.getLabelGroup().resetAggregateValues(); collector.collect(superEdge); }
@Override protected E initFrom(E edge) { return edgeFactory.initEdge( edge.getId(), GradoopConstants.DEFAULT_EDGE_LABEL, edge.getSourceId(), edge.getTargetId(), edge.getGraphIds()); } }
@Override public TypeInformation<Tuple2<K, Edge>> getProducedType() { return new TupleTypeInfo<>(getKeyTypeInfo(), TypeExtractor.createTypeInfo(edgeFactory.getType())); } }
@Override public Edge map(String csvLine) { String[] tokens = split(csvLine, 5); return edgeFactory.initEdge(GradoopId.fromString(tokens[0]), tokens[3], GradoopId.fromString(tokens[1]), GradoopId.fromString(tokens[2]), parseProperties(MetaDataSource.EDGE_TYPE, tokens[3], tokens[4])); } }
/** * Applies the transformation functions on the given datasets. * * @param graphHeads graph heads * @param vertices vertices * @param edges edges * @param factory the factory that is responsible for creating an instance of the logical graph * @return transformed logical graph */ @SuppressWarnings("unchecked") protected LG executeInternal(DataSet<G> graphHeads, DataSet<V> vertices, DataSet<E> edges, BaseGraphFactory<G, V, E, LG> factory) { DataSet<G> transformedGraphHeads = graphHeadTransFunc != null ? graphHeads .map(new TransformGraphHead(graphHeadTransFunc, factory.getGraphHeadFactory())) .returns(TypeExtractor.createTypeInfo(factory.getGraphHeadFactory().getType())) : graphHeads; DataSet<V> transformedVertices = vertexTransFunc != null ? vertices .map(new TransformVertex(vertexTransFunc, factory.getVertexFactory())) .returns(TypeExtractor.createTypeInfo(factory.getVertexFactory().getType())) : vertices; DataSet<E> transformedEdges = edgeTransFunc != null ? edges .map(new TransformEdge(edgeTransFunc, factory.getEdgeFactory())) .returns(TypeExtractor.createTypeInfo(factory.getEdgeFactory().getType())) : edges; return factory.fromDataSets(transformedGraphHeads, transformedVertices, transformedEdges); }