译者:flink.sojb.cn

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


    算法:degree.annotate.directed。VertexInDegree

    描述:使用in-degree 注释有向图的顶点。

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

    可选配置:

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

    • setParallelism:覆盖 算子并行度


    算法:degree.annotate.directed。VertexOutDegree

    描述:使用out-degree 注释有向图的顶点。

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

    可选配置:

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

    • setParallelism:覆盖 算子并行度


    算法:degree.annotate.directed。VertexDegrees

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

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

    可选配置:

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

    • setParallelism:覆盖 算子并行度


    算法:degree.annotate.directed。EdgeSourceDegrees

    描述:使用源ID的度,出度和度数来标注有向图的边。

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

    可选配置:

    • setParallelism:覆盖 算子并行度

    算法:degree.annotate.directed。EdgeTargetDegrees

    描述:使用目标ID的度,出度和度数来标注有向图的边。

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

    可选配置:

    • setParallelism:覆盖 算子并行度

    算法:degree.annotate.directed。EdgeDegreesPair

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

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

    可选配置:

    • setParallelism:覆盖 算子并行度

    算法:degree.annotate.undirected。VertexDegree

    描述:用度数注释无向图的顶点。

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

    可选配置:

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

    • setParallelism:覆盖 算子并行度

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


    算法:degree.annotate.undirected。EdgeSourceDegree

    描述:使用源ID的度数注释无向图的边。

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

    可选配置:

    • setParallelism:覆盖 算子并行度

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


    算法:degree.annotate.undirected。EdgeTargetDegree

    描述:使用目标ID的度数注释无向图的边。

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

    可选配置:

    • setParallelism:覆盖 算子并行度

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


    算法:degree.annotate.undirected。EdgeDegreePair

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

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

    可选配置:

    • setParallelism:覆盖 算子并行度

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


    算法:degree.filter.undirected。MaximumDegree

    描述:按最大程度Filter无向图

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

    可选配置:

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

    • setParallelism:覆盖 算子并行度

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


    算法:simple.directed。简化

    描述:从有向图中删除自循环和重复边。

    1. graph.run(new Simplify());

    可选配置:

    • setParallelism:覆盖 算子并行度

    算法:simple.undirected。简化

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

    1. graph.run(new Simplify());

    可选配置:

    • setParallelism:覆盖 算子并行度

    算法:翻译。TranslateGraphIds

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

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

    所需配置:

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

    可选配置:

    • setParallelism:覆盖 算子并行度

    算法:翻译。TranslateVertexValues

    描述:使用给定的转换顶点值TranslateFunction

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

    所需配置:

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

    可选配置:

    • setParallelism:覆盖 算子并行度

    算法:翻译。TranslateEdgeValues

    描述:使用给定的转换边缘值TranslateFunction

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

    所需配置:

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

    可选配置:

    • setParallelism:覆盖 算子并行度