图算法

Graph用于组装API和顶级算法的逻辑块可在Gelly中作为org.apache.flink.graph.asm包中的图形算法访问这些算法通过配置参数提供优化和调整,并且在使用类似配置处理相同输入时可以提供隐式运行时重用。

算法 描述
degree.annotate.directed。
VertexInDegree

使用in-degree 注释有向图的顶点

DataSet<Vertex<K, LongValue>> inDegree = graph
  .run(new VertexInDegree()
    .setIncludeZeroDegreeVertices(true));

可选配置:

  • setIncludeZeroDegreeVertices:默认情况下,只处理边集的计算程度; 设置此标志时,将对顶点集执行附加连接,以便输出度为零的顶点

  • setParallelism:覆盖 算子并行度

degree.annotate.directed。
VertexOutDegree

使用out-degree 注释有向图的顶点

DataSet<Vertex<K, LongValue>> outDegree = graph
  .run(new VertexOutDegree()
    .setIncludeZeroDegreeVertices(true));

可选配置:

  • setIncludeZeroDegreeVertices:默认情况下,只处理边集的计算程度; 设置此标志时,将对顶点集执行附加连接,以便输出out-degree为零的顶点

  • setParallelism:覆盖 算子并行度

degree.annotate.directed。
VertexDegrees

使用degree,out-degree和in-degree 注释有向图的顶点

DataSet<Vertex<K, Tuple2<LongValue, LongValue>>> degrees = graph
  .run(new VertexDegrees()
    .setIncludeZeroDegreeVertices(true));

可选配置:

  • setIncludeZeroDegreeVertices:默认情况下,只处理边集的计算程度; 设置此标志时,将对顶点集执行附加连接,以便输出out-and-degree为零的顶点

  • setParallelism:覆盖 算子并行度

degree.annotate.directed。
EdgeSourceDegrees

使用源ID的度,出度和度数来标注有向图的

DataSet<Edge<K, Tuple2<EV, Degrees>>> sourceDegrees = graph
  .run(new EdgeSourceDegrees());

可选配置:

  • setParallelism:覆盖 算子并行度

degree.annotate.directed。
EdgeTargetDegrees

使用目标ID的度,出度和度数来标注有向图的

DataSet<Edge<K, Tuple2<EV, Degrees>>> targetDegrees = graph
  .run(new EdgeTargetDegrees();

可选配置:

  • setParallelism:覆盖 算子并行度

degree.annotate.directed。
EdgeDegreesPair

使用源顶点和目标顶点的度,出度和度数来标注有向图的边。

DataSet<Edge<K, Tuple2<EV, Degrees>>> degrees = graph
  .run(new EdgeDegreesPair());

可选配置:

  • setParallelism:覆盖 算子并行度

degree.annotate.undirected。
VertexDegree

用度数注释无向图的顶点

DataSet<Vertex<K, LongValue>> degree = graph
  .run(new VertexDegree()
    .setIncludeZeroDegreeVertices(true)
    .setReduceOnTargetId(true));

可选配置:

  • setIncludeZeroDegreeVertices:默认情况下,只处理边集的计算程度; 设置此标志时,将对顶点集执行附加连接,以便输出度数为零的顶点

  • setParallelism:覆盖 算子并行度

  • setReduceOnTargetId:可以从边缘源ID或目标ID计算度数。默认情况下,会计算源ID。如果输入边缘列表按目标ID排序,则Reduce目标ID可以优化算法。

degree.annotate.undirected。
EdgeSourceDegree

使用源ID的度数注释无向图的

DataSet<Edge<K, Tuple2<EV, LongValue>>> sourceDegree = graph
  .run(new EdgeSourceDegree()
    .setReduceOnTargetId(true));

可选配置:

  • setParallelism:覆盖 算子并行度

  • setReduceOnTargetId:可以从边缘源ID或目标ID计算度数。默认情况下,会计算源ID。如果输入边缘列表按目标ID排序,则Reduce目标ID可以优化算法。

degree.annotate.undirected。
EdgeTargetDegree

使用目标ID的度数注释无向图的

DataSet<Edge<K, Tuple2<EV, LongValue>>> targetDegree = graph
  .run(new EdgeTargetDegree()
    .setReduceOnSourceId(true));

可选配置:

  • setParallelism:覆盖 算子并行度

  • setReduceOnSourceId:可以从边缘源ID或目标ID计算度。默认情况下,计算目标ID。如果输入边缘列表按源ID排序,则Reduce源ID可以优化算法。

degree.annotate.undirected。
EdgeDegreePair

使用源顶点和目标顶点的度数注释无向图的边。

DataSet<Edge<K, Tuple3<EV, LongValue, LongValue>>> pairDegree = graph
  .run(new EdgeDegreePair()
    .setReduceOnTargetId(true));

可选配置:

  • setParallelism:覆盖 算子并行度

  • setReduceOnTargetId:可以从边缘源ID或目标ID计算度数。默认情况下,会计算源ID。如果输入边缘列表按目标ID排序,则Reduce目标ID可以优化算法。

degree.filter.undirected。
MaximumDegree

按最大程度Filter无向图

Graph<K, VV, EV> filteredGraph = graph
  .run(new MaximumDegree(5000)
    .setBroadcastHighDegreeVertices(true)
    .setReduceOnTargetId(true));

可选配置:

  • setBroadcastHighDegreeVertices:使用广播哈希连接高度顶点,以在删除相对较少数量的高度顶点时Reduce数据混洗。

  • setParallelism:覆盖 算子并行度

  • setReduceOnTargetId:可以从边缘源ID或目标ID计算度数。默认情况下,会计算源ID。如果输入边缘列表按目标ID排序,则Reduce目标ID可以优化算法。

simple.directed。
简化

从有向图中删除自循环和重复边

graph.run(new Simplify());

可选配置:

  • setParallelism:覆盖 算子并行度

simple.undirected。
简化

添加对称边并从无向图中移除自循环和复制边

graph.run(new Simplify());

可选配置:

  • setParallelism:覆盖 算子并行度

翻译。
TranslateGraphIds

使用给定的转换顶点和边ID TranslateFunction

graph.run(new TranslateGraphIds(new LongValueToStringValue()));

所需配置:

  • 翻译器:实现类型或值转换

可选配置:

  • setParallelism:覆盖 算子并行度

翻译。
TranslateVertexValues

使用给定的转换顶点值TranslateFunction

graph.run(new TranslateVertexValues(new LongValueAddOffset(vertexCount)));

所需配置:

  • 翻译器:实现类型或值转换

可选配置:

  • setParallelism:覆盖 算子并行度

翻译。
TranslateEdgeValues

使用给定的转换边缘值TranslateFunction

graph.run(new TranslateEdgeValues(new Nullify()));

所需配置:

  • 翻译器:实现类型或值转换

可选配置:

  • setParallelism:覆盖 算子并行度

回到顶部