鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

Betweenness

run API

  • API
    def run(edgeRDD: RDD[(VertexId, VertexId, Double)], k: Int, p: Double): RDD[(Long, Double)]
  • 功能描述

    根据指定输入参数计算图中介数中心性值最大的K个结点。

  • API描述
    1. 包名:package org.apache.spark.graphx.lib.Betweenness
    2. 类名:Betweenness
    3. 方法名:run
    4. 输入:Graph[VD, ED]
    5. 参数详情:

      参数名称

      参数含义

      取值类型

      edges

      从文件读入的图边列表信息(权值大于0)

      RDD[(Long, Long, Double)]

      k

      算法输出的结点数量

      Int大于0或等于-1的整型数值

      p

      近似解精度,当0 < p < 1时,算法输出近似解,当p >= 1时,算法输出精确解

      Double大于0的浮点型数值

    6. 输出:RDD[(Long, Double)],为图中介数中心性值最大的k个结点编号,与每个结点对应的紧密中心性的值组成的列表。算法在相同环境、相同参数设定下,输出的结果是唯一的。
  • 使用样例

    Betweenness无向无权图样例:

    val sparkconf = new SparkConf().setAppName(“TopKBetweennessComputue”).setMaster(host)
    val sc = new SparkContext(sparkconf)
     
    val edges = sc.makeRDD(Seq((1L, 2L, 1.0), (1L, 3L, 1.0), (1L, 4L, 1.0), (2L, 3L, 1.0),   (3L, 4L, 1.0), (3L, 5L, 1.0), (4L, 5L, 1.0), (4L, 6L, 1.0), (5L, 7L, 1.0),   (5L, 2L, 1.0), (5L, 6L, 1.0), (6L, 7L, 1.0)))
    
    val res = Betweenness.run(edges, k = -1, p = 1.0).collect()
  • 样例结果:
    res=[ (5, 7.166666666666666), (3, 5.833333333333333), (4, 3.1666666666666665),
          (2, 3.0), (6, 0.8333333333333333), (1, 0.0), (7, 0.0)]