博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Spark][Python]PageRank 程序
阅读量:6239 次
发布时间:2019-06-22

本文共 987 字,大约阅读时间需要 3 分钟。

PageRank 程序:

file contents:

page1 page3

page2 page1
page4 page1
page3 page1
page4 page2
page3 page4

def computeContribs(neighbors,rank):
    for neighbor in neighbors: yield( neighbor, rank/len(neighbors) )

 

links = sc.textFile("tst001.txt").map(lambda line: line.split()).map(lambda pages: (pages[0],pages[1]))\

.distinct().groupByKey().persist()

ranks=links.map(lambda (page,neighbors): (page,1.0) )

In [4]: for x in range(1):
...: print "links count:"+links.count()
...: print "ranks count:" ranks.count()

In [11]: for x in range(3):
....: contribs=links.join(ranks).flatMap( lambda (page,(neighbors,rank)): computeContribs(neighbors,rank) )
....: ranks=contribs.reduceByKey(lambda v1,v2: v1+v2).map(lambda (page,contrib): (page,contrib*0.85+0.15))
....:

for rank in ranks.collect(): print rank

(u'page2', 0.394375)

(u'page3', 1.2619062499999998)
(u'page4', 0.8820624999999999)
(u'page1', 1.4616562499999997)

本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/p/7614711.html,如需转载请自行联系原作者

你可能感兴趣的文章
HTML特殊字符替换问题 html escape相关
查看>>
XCode打包出现does not contain a single boundle错误解决办法
查看>>
ifcfg, ip/ss,配置文件详解
查看>>
mac安装web3j
查看>>
扣丁音乐 个人练习源码下载
查看>>
对称加密PBE(代码实现)
查看>>
我的友情链接
查看>>
循序渐进Java Socket网络编程(多客户端、信息共享、文件传输)
查看>>
Inagios_强势来袭_IT运维人人必备
查看>>
dedecms搬场具体申明 织梦吧浑算
查看>>
pxe
查看>>
万事都源于一个字:缘
查看>>
jQuery表单验证插件
查看>>
Centos 查询大文件
查看>>
Java 对byte,short,char,int,long 运算时自动类型转化情况说明
查看>>
比较详细的MySQL的复制原理及配置
查看>>
创建启动虚拟网卡
查看>>
编译安装部署最新C++开发环境
查看>>
DNS服务
查看>>
ActiveMQ(21):Consumer高级特性之管理持久化订阅
查看>>