#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
import re
import sys
from operator import add
from pyspark import SparkConf, SparkContext
def compute_contribs(urls, rank):
"""
给urls计算
Args:
urls: 目标url相邻的urls集合
rank: 目标url的当前rank
Returns:
url: 相邻urls中的一个url
rank: 当前url的新的rank
"""
num_urls = len(urls)
for url in urls:
yield (url, rank / num_urls)
def split_url(url_line):
"""
把一行url切分开来
Args:
url_line: 一行url,如 1 2
Returns:
url, neighbor_url
"""
parts = re.split(r'\s+', url_line) # 正则
return parts[0], parts[1]
def compute_pagerank(sc, url_data_file, iterations):
"""
计算各个page的排名
Args:
sc: SparkContext
url_data_file: 测试数据文件
iterations: 迭代次数
Returns:
status: 成功就返回0
"""
# 读取url文件 ['1 2', '1 3', '2 1', '3 1']
lines = sc.textFile(url_data_file).m
pyspark 实现PageRank
最新推荐文章于 2022-06-04 07:20:07 发布
本文介绍了一个使用PySpark实现的PageRank算法案例。该算法通过迭代计算网页之间的链接关系,确定每个网页的重要性。具体步骤包括从文件中读取网页链接数据、构建网页链接关系的Pair RDD、初始化网页排名、进行多次迭代计算并更新网页排名等。

最低0.47元/天 解锁文章
1825

被折叠的 条评论
为什么被折叠?



