百度面试题: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端到端精确一次处理语义实现

640?wx_fmt=png


文章来源:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/82393010

原文地址:https://www.cnblogs.com/mazhujun/p/9633648.html