)), (D,List(C)))
ranksRDD:
Array[(String, Double)] = Array((A,1.0), (B,1.0), (C,1.0), (D,1.0))
首次迭代后的...算法从将ranksRDD的每个元素的值初始化为1.0开始,然后在每次迭代中不断更新ranks变量。...在Spark中编写PageRank的主体相当简单:首先对当前的ranksRDD和静态的linkRDD进行一次join()操作,来获取每个页面ID对应的相邻页面列表和当前的排序值,然后使用flatMap创建出...(3)当我们第一次创建ranks时,我们使用mapValues()而不是map()来保留父RDD(links)的分区方式,这样对它进行的第一次连接操作就会开销很小。...(4)在循环体中,我们在reduceByKey()后使用mapValues();因为reduceByKey()的结果已经是哈希分区的了,这样一来,下一次循环中将映射操作的结果再次与links进行连接操作时就会更加高效