@Override public org.apache.flink.graph.Vertex<GradoopId, PropertyValue> map( Vertex epgmVertex) throws Exception { reuseVertex.setId(epgmVertex.getId()); reuseVertex.setValue(epgmVertex.getPropertyValue(propertyKey)); return reuseVertex; } }
static Vertex transformVertex(Vertex current, Vertex transformed) { transformed.setLabel(current.getLabel()); if (current.getLabel().equals("A")) { transformed.setProperty("a", current.getPropertyValue("a").getInt() + 1); transformed.setProperty("b", current.getPropertyValue("b").getInt() - 1); } else if (current.getLabel().equals("B")) { transformed.setProperty("d", current.getPropertyValue("c")); } return transformed; }
@Override public Vertex initVertex(final GradoopId id, final String label, final Properties properties, final GradoopIdSet graphs) { Preconditions.checkNotNull(id, "Identifier was null"); Preconditions.checkNotNull(label, "Label was null"); return new Vertex(id, label, properties, graphs); }
@Override public GraphTransaction map(GraphTransaction graphTransaction) throws Exception { String label; for (Vertex vertex : graphTransaction.getVertices()) { label = vertexDictionary.get(Integer.parseInt(vertex.getLabel())); if (label != null) { vertex.setLabel(label); } else { vertex.setLabel(vertex.getLabel() + TLFConstants.EMPTY_LABEL); } } return graphTransaction; } }
@Override public boolean filter(V vertex) throws Exception { if (vertex.hasProperty(degreePropertyName)) { return Long.parseLong(vertex.getPropertyValue(degreePropertyName).toString()) != degree; } else { return true; } } }
@Override public void flatMap(Vertex vertex, Collector<VertexString> collector) throws Exception { GradoopId vertexId = vertex.getId(); String vertexLabel = "(" + vertex.getId() + ")"; for (GradoopId graphId : vertex.getGraphIds()) { collector.collect(new VertexString(graphId, vertexId, vertexLabel)); } } }
Vertex row = new Vertex(); row.setId(GradoopId.fromString(source.getTopKey().getRow().toString())); row.setGraphIds(new GradoopIdSet()); while (source.hasTop()) { Key key = source.getTopKey(); Value value = source.getTopValue(); if (!Objects.equals(row.getId().toString(), key.getRow().toString())) { break; row.setLabel(value.toString()); break; case AccumuloTables.KEY.PROPERTY: row.setProperty(key.getColumnQualifier().toString(), PropertyValue.fromRawBytes(value.get())); break; case AccumuloTables.KEY.GRAPH: row.getGraphIds().add(GradoopId.fromString(key.getColumnQualifier().toString())); break; default: return row.getLabel() == null ? null : row;
/** * Returns the gdl formatted vertex including the properties and the label on first occurrence * or otherwise just the variable name. * * @param v The vertex that should be formatted. * @param idToVertexName Maps GradoopId of a vertex to a string that represents the gdl * variable name * @return A GDL formatted vertex string. */ private String vertexToGDLString(Vertex v, Map<GradoopId, String> idToVertexName) { return String.format("(%s:%s %s)", idToVertexName.get(v.getId()), v.getLabel(), propertiesToGDLString(v.getProperties())); }
@Override public CSVVertex map(Vertex vertex) throws Exception { csvVertex.setId(vertex.getId().toString()); csvVertex.setGradoopIds(collectionToCsvString(vertex.getGraphIds())); csvVertex.setLabel(StringEscaper.escape(vertex.getLabel(), CSVConstants.ESCAPED_CHARACTERS)); csvVertex.setProperties(getPropertyString(vertex, MetaDataSource.VERTEX_TYPE)); return csvVertex; } }
@Override public void flatMap(Vertex vertex, Collector<Tuple2<PropertyValue, GradoopId>> out) { if (vertex.getProperties() != null && vertex.getProperties().containsKey(originalPropertyName)) { PropertyValue pv = vertex.getPropertyValue(originalPropertyName); reuseTuple.f1 = vertex.getId(); if (pv.isList()) { for (PropertyValue value : pv.getList()) { reuseTuple.f0 = value; out.collect(reuseTuple); } } else { reuseTuple.f0 = pv; out.collect(reuseTuple); } } } }
/** * Relabel vertices and to drop properties. * * @param current current vertex * @param transformed copy of current except label and properties * @return current vertex with a new label depending on its type */ private static Vertex relabelVerticesAndRemoveProperties(Vertex current, Vertex transformed) { String label; if (current .getPropertyValue(BusinessTransactionGraphs.SUPERTYPE_KEY).getString() .equals(BusinessTransactionGraphs.SUPERCLASS_VALUE_TRANSACTIONAL)) { label = TRANSACTIONAL_PREFIX + current.getLabel(); } else { label = MASTER_PREFIX + current.getPropertyValue(SOURCEID_KEY).toString(); } transformed.setLabel(label); return transformed; }
/** * Find all person who's age is not smaller than 35 * * @throws Throwable if error */ @Test public void findPersonByAge() throws Throwable { doTest(TEST02, (loader, store, config) -> { //vertex label and property query List<Vertex> inputVertices = loader.getVertices() .stream() .filter(it -> Objects.equals(it.getLabel(), "Person")) .filter(it -> it.getProperties() != null) .filter(it -> it.getProperties().get("age") != null) .filter(it -> it.getProperties().get("age").getInt() >= 35) .collect(Collectors.toList()); List<Vertex> queryResult = store .getVertexSpace( Query.elements() .fromAll() .where(AccumuloFilters.propLargerThan("age", 35, true))) .readRemainsAndClose(); validateEPGMElementCollections(inputVertices, queryResult); }); }
/** * {@inheritDoc} */ @Override public Vertex cross(Tuple1<Long> longTuple1, Vertex vertex) { vertex.setProperty(nameOfMaxDegreeProperty, longTuple1.f0); return vertex; } }
@Override public void flatMap(GraphTransaction graphTransaction, Collector<String> collector) throws Exception { for (Vertex vertex : graphTransaction.getVertices()) { collector.collect(vertex.getLabel()); } } }
/** * {@inheritDoc} */ @Override public Tuple2<Vertex, GradoopId> map(Vertex vertex) throws Exception { reuse.f0 = vertex; reuse.f1 = vertex.getId(); return reuse; } }
@Override public void validateGraphProperties(LogicalGraph graph) throws Exception { List<Vertex> vertices = graph.getVertices().collect(); for (Vertex v : vertices) { assertTrue("No local value stored in vertex: " + v.getId().toString(), v.hasProperty(ClusteringCoefficientBase.PROPERTY_KEY_LOCAL)); } } }
switch (String.valueOf(v.getPropertyValue("name"))) { case "foo": assertNotNull(v.getProperties()); assertEquals(4, v.getProperties().size()); assertEquals("453", v.getPropertyValue("value1").getString()); assertEquals("true", v.getPropertyValue("value2").getString()); assertEquals("71.03", v.getPropertyValue("value3").getString()); break; case "bar": assertNotNull(v.getProperties()); assertEquals(4, v.getProperties().size()); assertEquals("76", v.getPropertyValue("value1").getString()); assertEquals("false", v.getPropertyValue("value2").getString()); assertEquals("33.4", v.getPropertyValue("value3").getString()); break; case "bla": assertNotNull(v.getProperties()); assertEquals(3, v.getProperties().size()); assertEquals("4568", v.getPropertyValue("value1").toString()); assertFalse(v.hasProperty("value2")); assertEquals("9.42", v.getPropertyValue("value3").toString()); break; default:
/** * {@inheritDoc} */ @Override public boolean filter(V vertex) throws Exception { long degree = Long.parseLong(vertex.getPropertyValue(propertyNameOfDegree).toString()); long maxDegree = Long.parseLong(vertex.getPropertyValue(propertyNameofMaxDegree).toString()); return randomGenerator.nextFloat() <= (degree / (double) maxDegree) * threshold; } }
private GraphTransaction getGraphTransaction() { GraphHead graphHead = new GraphHead(GradoopId.get(), "Test", null); GradoopIdSet graphIds = GradoopIdSet.fromExisting(graphHead.getId()); Set<Vertex> vertices = Sets.newHashSet(); Set<Edge> edges = Sets.newHashSet(); Properties aProperties = new Properties(); aProperties.set("x", 1); Vertex v1 = new Vertex(GradoopId.get(), "A", aProperties, graphIds); Vertex v2 = new Vertex(GradoopId.get(), "B", null, graphIds); vertices.add(v1); vertices.add(v2); Properties loopProperties = new Properties(); edges.add(new Edge(GradoopId.get(), "loop", v1.getId(), v1.getId(), loopProperties, graphIds)); edges.add(new Edge(GradoopId.get(), "m", v1.getId(), v2.getId(), null, graphIds)); edges.add(new Edge(GradoopId.get(), "m", v1.getId(), v2.getId(), null, graphIds)); edges.add(new Edge(GradoopId.get(), "m", v2.getId(), v1.getId(), null, graphIds)); return new GraphTransaction(graphHead, vertices, edges); } }
@Override public Vertex cross(GraphHead searchGraphHead, GraphHead patternGraphSeachHead) throws Exception { REUSABLE_VERTEX.setLabel(patternGraphSeachHead.getLabel()); REUSABLE_VERTEX.setProperties(patternGraphSeachHead.getProperties()); REUSABLE_VERTEX.setId(newVertexId); REUSABLE_VERTEX.addGraphId(searchGraphHead.getId()); return REUSABLE_VERTEX; } }