百度面试题:Spark 实现PageRank
PageRank算法简介
PageRank是执行多次连接的一个迭代算法,因此它是RDD分区操作的一个很好的用例。算法会维护两个数据集:一个由(pageID,linkList)的元素组成,包含每个页面的相邻页面的列表;另一个由(pageID,rank)元素组成,包含每个页面的当前排序值。它按如下步骤进行计算。
? ? ? ?
最后两个步骤会重复几个循环,在此过程中,算法会逐渐收敛于每个页面的实际PageRank值。在实际操作中,收敛通常需要大约10轮迭代。
模拟数据
假设一个由4个页面组成的小团体:A,B,C和D。相邻页面如下所示:
A:B
C?
B:A
C?
C:A
B D?
D:C?
推荐阅读:
hive的join优化
经验|如何设置Spark资源
干货:Flink+Kafka 0.11端到端精确一次处理语义实现
文章来源:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/82393010