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

PersonalizedPageRank

runWithOptions API

  • API
    def runWithOptions[VD: ClassTag, ED: ClassTag](graph: Graph[VD, ED], numIter: Int, resetProb: Double = 0.15, srcId: Option[VertexId] = None): Graph[Double, Double]
  • 功能描述

    根据网络结构计算指定节点对其他节点的影响性,本算法接口与Spark GraphX算法保持一致。

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

      参数名称

      参数含义

      取值类型

      graph

      GraphX图数据

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

      numIter

      迭代次数

      Int,取值范围:大于0

      resetProb

      重置系数

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

      srcId

      指定节点ID

      Long型,可为空,为空时计算全量固定版本pagerank

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

    PersonalizedPageRank无向有权图样例:

    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.runWithOptions(g, 100, 0.15, Option(1L))
  • 样例结果:
    6  0.077023744
    3  0.044277239
    9  0.05101366
    4  0.107173489
    1  0.156272609
    7  0.125956472
    10 0
    11 0.085580858
    8  0.225763317
    5  0.013094036
    2  0.113844576

runUntilConvergenceWithOptions API

  • API
    def runUntilConvergenceWithOptions[VD: ClassTag, ED: ClassTag](graph: Graph[VD, ED], tol: Double, resetProb: Double = 0.15, srcId: Option[VertexId] = None): Graph[Double, Double]
  • 功能描述

    根据网络结构计算指定节点对其他节点的影响性,本算法接口与Spark GraphX算法保持一致。

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

      参数名称

      参数含义

      取值类型

      graph

      GraphX图数据

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

      tol

      收敛时允许的容差

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

      resetProb

      重置系数

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

      srcId

      指定节点ID

      Long型,可为空,为空时计算全量残差版本pagerank

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

    PersonalizedPageRank无向有权图样例:

    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.runUntilConvergenceWithOptions(g, 1e-7, 0.15, Option(1L))
  • 样例结果:
    6  0.07702377910782882
    3  0.044277299269150125
    9  0.05101362020140663
    4  0.1071734255124889
    1  0.1562728209499416
    7  0.12595639498739172
    10 0.0
    11 0.08558080335029711
    8  0.22576321877417618
    5  0.0130940324264644
    2  0.11384460542085444

runParallelPersonalizedPageRank API

  • API
    def runParallelPersonalizedPageRank[VD: ClassTag, ED: ClassTag](graph: Graph[VD, ED], numIter: Int, resetProb: Double = 0.15, sources: Array[VertexId]): Graph[Vector, Double]
  • 功能描述

    根据网络结构计算指定节点对其他节点的影响性,本算法接口与Spark GraphX算法保持一致。

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

      参数名称

      参数含义

      取值类型

      graph

      GraphX图数据

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

      numIter

      迭代次数

      Int,取值范围:大于0

      resetProb

      重置系数

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

      sources

      指定节点ID集合

      Array[Long]型,不可为空

    6. 输出:Graph:Graph[Vector, Double],节点属性存储该节点对于各源节点的PageRank值,顺序与sources保持一致,使用Vector进行描述,同时,为与开源保持一致,边属性存储源节点出度的倒数。
  • 使用样例

    PersonalizedPageRank无向有权图样例:

    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.runParallelPersonalizedPageRank(g, 100, 0.15, Array(1L, 10L))
  • 样例结果:
    6  0.07702374399273663,0.04699968348218789
    3  0.04427723918390972,0.0426168427145131
    9  0.05101366004234638,0.05167737982879439
    4  0.10717348941060002,0.1354208337916541
    1  0.15627260888438724,0.0379123860512227
    7  0.12595647209080826,0.13286572218812956
    10 0.0,0.15000000000000005
    11 0.08558085784605748,0.08274146069582425
    8  0.22576331655417475,0.20482847772813126
    5  0.013094036478765229,0.03986494619197195
    2  0.1138445755162144,0.07507226732757086