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

PageRank

runUntilConvergence API

  • API
    1
    def runUntilConvergence[VD: ClassTag, ED: ClassTag](graph: Graph[VD, ED],tol: Double,resetProb: Double = 0.15): Graph[Double, Double]
    
  • 功能描述

    本算法模型基于Spark框架,根据指定的收敛精度,通过残差迭代方式计算图中各结点PageRank值,PageRank值取值范围[0,N],N为结点个数。本算法接口与开源Spark GraphX算法接口完全一致,本算法支持有向无权。

  • API描述
    1. 包名:package org.apache.spark.graphx.lib
    2. 类名:PageRank
    3. 方法名:runUntilConvergence
    4. 输入:graph: Graph[VD,ED]
    5. 核心参数:
      1. tol:收敛时允许的容差(通常取值1e-7)
      2. resetProb:重置概率系数,缺省值(0.15)。
    6. 参数详情:

      参数名称

      取值类型

      描述

      graph

      Graph[VD,ED],VD、ED为泛型类型,分别表示输入图的结点属性类型与边属性类型,计算过程不感知。

      GraphX图数据

      tol

      Double如1e-7等,取值范围:大于0。

      收敛时允许的容差

      resetProb

      Double,经验值0.15,取值范围:[0,1]。

      重置系数

    7. 输出:Graph:Graph[Double,Double],结点属性存储该结点的PageRank值,同时,为与开源保持一致,边属性存储源结点出度的倒数。
  • 使用样例

    PageRank样例:

    val conf = new SparkConf().setAppName("PageRank").setMaster(host)
    val sc = new SparkContext(conf)
    val edges = Array(Edge(1,2,1.0), Edge(1,3,1.0), Edge(1,6,1.0), Edge(2,8,1.0), Edge(3,1,1.0), Edge(3,2,1.0), Edge(3,4,1.0), Edge(3,6,1.0), Edge(3,7,1.0), Edge(3,8,1.0), Edge(4,7,1.0), Edge(4,8,1.0), Edge(5,2,1.0), Edge(5,4,1.0), Edge(5,6,1.0), Edge(5,7,1.0), Edge(5,8,1.0), Edge(6,2,1.0), Edge(6,4,1.0), Edge(6,5,1.0), Edge(6,7,1.0), Edge(6,8,1.0), Edge(7,4,1.0), Edge(7,8,1.0), Edge(7,9,1.0), Edge(7,11,1.0), Edge(8,2,1.0), Edge(8,4,1.0), Edge(8,7,1.0), Edge(8,11,1.0), Edge(9,4,1.0), Edge(9,7,1.0), Edge(9,8,1.0), Edge(9,11,1.0), Edge(10,1,1.0), Edge(10,3,1.0), Edge(10,4,1.0), Edge(10,5,1.0), Edge(11,6,1.0), Edge(11,8,1.0), Edge(11,9,1.0))
    val g = Graph.fromEdges(sc.parallelize(edges, 3), 1D)
    PageRank.runUntilConvergence (g, 1e-7, 0.15)
  • 样例结果

    第一列为结点ID,第二列为PR值。

    10,0.15000000000000002
    1,0.21632361452756482
    3,0.24316669078281006
    5,0.2960495884141481
    6.0.6716152259655768
    9,0.9086302548739689
    2,1.0095338325502028
    11,1.325458202205165
    4,1.5562848351772833
    7,1.8027471258784566
    8,2.8201906296248227

run API

  • API
    1
    def run [VD: ClassTag, ED: ClassTag](graph: Graph[VD, ED],numIter: Int,resetProb: Double = 0.15): Graph[Double, Double]
    
  • 功能描述

    本算法模型基于Spark框架,根据指定的收敛精度,通过残差迭代方式计算图中各结点PageRank值,PageRank值取值范围[0,N],N为结点个数。本算法接口与开源Spark GraphX算法接口完全一致,本算法支持有向无权。

  • API描述
    1. 包名:package org.apache.spark.graphx.lib
    2. 类名:PageRank
    3. 方法名:run
    4. 输入:graph:Graph[VD,ED]
    5. 核心参数:
      1. numIter:迭代次数
      2. resetProb:重置概率系数,缺省值(0.15)。
    6. 参数详情:

      参数名称

      取值类型

      描述

      graph

      Graph[VD,ED],VD、ED为泛型类型,分别表示输入图的结点属性类型与边属性类型,计算过程不感知。

      GraphX图数据

      numIter

      Int,取值范围:大于0。

      迭代次数

      resetProb

      Double,经验值0.15,取值范围:[0,1]。

      重置系数

    7. 输出:Graph:Graph[Double,Double],结点属性存储该结点的PageRank值,同时,为与开源保持一致,边属性存储源结点出度的倒数。
  • 使用样例

    PageRank样例:

    val conf = new SparkConf().setAppName("PageRank").setMaster(host)
    val sc = new SparkContext(conf)
    val edges = Array(Edge(1,2,1.0), Edge(1,3,1.0), Edge(1,6,1.0), Edge(2,8,1.0), Edge(3,1,1.0), Edge(3,2,1.0),Edge(3,4,1.0), Edge(3,6,1.0), Edge(3,7,1.0), Edge(3,8,1.0), Edge(4,7,1.0), Edge(4,8,1.0), Edge(5,2,1.0), Edge(5,4,1.0), Edge(5,6,1.0), Edge(5,7,1.0), Edge(5,8,1.0), Edge(6,2,1.0), Edge(6,4,1.0), Edge(6,5,1.0), Edge(6,7,1.0), Edge(6,8,1.0), Edge(7,4,1.0), Edge(7,8,1.0), Edge(7,9,1.0), Edge(7,11,1.0), Edge(8,2,1.0), Edge(8,4,1.0), Edge(8,7,1.0), Edge(8,11,1.0), Edge(9,4,1.0), Edge(9,7,1.0), Edge(9,8,1.0), Edge(9,11,1.0), Edge(10,1,1.0), Edge(10,3,1.0), Edge(10,4,1.0), Edge(10,5,1.0), Edge(11,6,1.0), Edge(11,8,1.0), Edge(11,9,1.0))
    val g = Graph.fromEdges(sc.parallelize(edges, 3), 1D)
    PageRank.run (g, 100, 0.15)
  • 样例结果

    第一列为结点ID,第二列为PR值。

    10,0.15000000000000002
    1,0.21632361452756482
    3,0.24316669078281006
    5,0.2960495884141481
    6.0.6716152259655768
    9,0.9086302548739689
    2,1.0095338325502028
    11,1.325458202205165
    4,1.5562848351772833
    7,1.8027471258784566
    8,2.8201906296248227