Incremental PageRank
run API
- API
def run(graph: RDD[(Long, Int, Array[Long], Array[Int], Double)], partNum: Int, numIter: Int, resetProb: Double): RDD[(Long, Double)]
- 功能描述
本算法模型基于Spark框架,基于指定迭代次数计算图中增量结点PageRank值,PageRank值取值范围[0, N],N为结点个数。本算法支持有向有权图。
- API描述
- 包名:package org.apache.spark.graphx.lib
- 类名:IncPageRank
- 方法名:run
- 输入:graph: RDD[(Long, Int, Array[Long], Array[Int], Double)],图数据。表示为{源结点,源结点状态,目标结点集合,目标结点状态集合,源结点pr值}
- 核心参数:
- partNum: 分区数
- numIter: 迭代次数。
- resetProb:重置概率系数,缺省值(0.15)。
- 参数详情:
参数名称
取值类型
描述
graph
(Long, Int, Array[Long], Array[Int], Double),表示(源结点,源结点状态,目标结点集合,目标结点状态集合,源结点PR值)
- 源结点状态: 存量点状态为0,增量点状态为1。如果结点状态不为0或1,则会丢失该部分信息,影响计算精度。
- 目标结点状态集合:目标结点集合中的状态,存量点状态为0,增量点状态为1。如果结点状态不为0或1,则会丢失该部分信息,影响计算精度。
- 源结点PR值:存量点PR值为历史结果,增量点PR值默认为1.0。
GraphX图数据
partNum
Int,取值范围:大于0。
分区数
numIter
Int,取值范围:大于0。
迭代次数
resetProb
Double,经验值0.15,取值范围:[0,1]。
重置系数
- 输出:PageRank值,RDD[(Long, Double)],增量结点的PageRank值。
- 使用样例
val conf = new SparkConf().setAppName("IncPageRank").setMaster(host) val sc = new SparkContext(conf) val edges = Array( (1L,0,Array(2L,3L),Array(0,0),1.125786), (2L,0,Array(3L,5L),Array(0,1),0.618), (3L,0,Array(4L),Array(0),1.132841), (4L,0,Array(1L),Array(0),1.123374), (5L,1,Array(3L,6L),Array(0,1),1.0), (6L,1,Array(4L),Array(0),1.0) ) val graph = sc.parallelize(edges, 3) val numIter = 10 val resetProb = 0.15 val part = 10 val result = IncPageRank.run(graph,part,numIter,resetProb)
- 样例结果
父主题: 中心性分析