Graph Algorithms 图像算法
在 Gelly 中作为图算法,Graph
API 和 顶层算法集成的逻辑模块都在 org.apache.flink.graph.asm
中。这些算法可用通过配置参数进行优化和调整,并且当用一组相似的配置对相同的输入进行处理时,提供隐式的运行时复用。.
算法 | 描述 |
---|---|
degree.annotate.directed. VertexInDegree |
用入边 (in-degree) 标注一个有向图的点. java
DataSet<Vertex<K, LongValue>> inDegree = graph
.run(new VertexInDegree()
.setIncludeZeroDegreeVertices(true));
可选配置:
|
degree.annotate.directed. VertexOutDegree |
用出边 (out-degree) 标注一个有向图的点. java
DataSet<Vertex<K, LongValue>> outDegree = graph
.run(new VertexOutDegree()
.setIncludeZeroDegreeVertices(true));
可选配置:
|
degree.annotate.directed. VertexDegrees |
用自由度(degree), 出边(out-degree), 和入边(in-degree)标注一个有向图的点. java
DataSet<Vertex<K, Tuple2<LongValue, LongValue>>> degrees = graph
.run(new VertexDegrees()
.setIncludeZeroDegreeVertices(true));
可选配置:
|
degree.annotate.directed. EdgeSourceDegrees |
用源点的自由度(degree),出边(out-degree)和入边(in-degree)标注一个有向图的边. java
DataSet<Edge<K, Tuple2<EV, Degrees>>> sourceDegrees = graph
.run(new EdgeSourceDegrees());
可选配置:
|
degree.annotate.directed. EdgeTargetDegrees |
用目标点的自由度(degree),出边(out-degree)和入边(in-degree)标注一个有向图的边. java
DataSet<Edge<K, Tuple2<EV, Degrees>>> targetDegrees = graph
.run(new EdgeTargetDegrees();
可选配置:
|
degree.annotate.directed. EdgeDegreesPair |
用源点目标点的自由度(degree),出边(out-degree)和入边(in-degree)标注一个有向图的边. java
DataSet<Edge<K, Tuple2<EV, Degrees>>> degrees = graph
.run(new EdgeDegreesPair());
可选配置:
|
degree.annotate.undirected. VertexDegree |
用自由度(degree)标注一个无向图的点. java
DataSet<Vertex<K, LongValue>> degree = graph
.run(new VertexDegree()
.setIncludeZeroDegreeVertices(true)
.setReduceOnTargetId(true));
可选配置:
|
degree.annotate.undirected. EdgeSourceDegree |
用源点的自由度(degree)标注一个无向图的边. java
DataSet<Edge<K, Tuple2<EV, LongValue>>> sourceDegree = graph
.run(new EdgeSourceDegree()
.setReduceOnTargetId(true));
可选配置:
|
degree.annotate.undirected. EdgeTargetDegree |
用目标点的自由度(degree)标注一个无向图的边. java
DataSet<Edge<K, Tuple2<EV, LongValue>>> targetDegree = graph
.run(new EdgeTargetDegree()
.setReduceOnSourceId(true));
可选配置:
|
degree.annotate.undirected. EdgeDegreePair |
用源点和目标点的自由度(degree)标注一个无向图的边. java
DataSet<Edge<K, Tuple3<EV, LongValue, LongValue>>> pairDegree = graph
.run(new EdgeDegreePair()
.setReduceOnTargetId(true));
可选配置:
|
degree.filter.undirected. MaximumDegree |
用最大自由度过滤一个无向图. java
Graph<K, VV, EV> filteredGraph = graph
.run(new MaximumDegree(5000)
.setBroadcastHighDegreeVertices(true)
.setReduceOnTargetId(true));
可选配置:
|
simple.directed. Simplify |
移除一个有向图的自环 (self-loops) 和相同的边. java
graph.run(new Simplify());
可选配置:
|
simple.undirected. Simplify |
从一个无向图中添加对称边并移除自环 (self-loops). java
graph.run(new Simplify());
可选配置:
|
translate. TranslateGraphIds |
用给定的 java
graph.run(new TranslateGraphIds(new LongValueToStringValue()));
必要配置:
可选配置:
|
translate. TranslateVertexValues |
用给定的 java
graph.run(new TranslateVertexValues(new LongValueAddOffset(vertexCount)));
必要配置:
可选配置:
|
translate. TranslateEdgeValues |
用给定的 java
graph.run(new TranslateEdgeValues(new Nullify()));
必要配置:
可选配置:
|