【版本】
当前版本号v20200524
版本 | 修改说明 |
---|---|
v20200524 | 初始化版本 |
实验8.1 :基于 GraphFrames 的 PageRank 网页排名
【实验名称】 实验8.1 :基于 GraphFrames 的 PageRank 网页排名
【实验目的】
理解本地向量、转换器、评估器、参数
【实验原理】
- 调用 GraphFrame.pageRank 进行网页排名
【实验环境】
- 操作系统:Ubuntu 16.04
- Spark:Spark2.x
- 开发环境:PyCharm 或 Jupyter Notebook
- graphframes:graphframes:0.8.0-spark2.4-s_2.11
【实验资源】
实验数据下载
https://pan.baidu.com/s/1JbaD95ObxiNXyz34KaP1Hg#提取码vkb5
【实验步骤】
确保虚拟机可以联网。
运行以下命令,安装 GraphFrames 库依赖。
spark-submit --packages graphframes:graphframes:0.8.0-spark2.4-s_2.11 hello.py
- 启用开发环境。
(1)如果使用 Jupyter Notebook 启动,需要加上 packages 选项和指定 graphframes 库版本。
pyspark --packages graphframes:graphframes:0.8.0-spark2.4-s_2.11
(2)如果使用PyCharm,可以编写完整的py文件,使用 spark-submit 提交运行。注意加上 packages 选项和指定 graphframes 库版本。
spark-submit --packages graphframes:graphframes:0.8.0-spark2.4-s_2.11 你的py文件路径
(3)从实验资源下载web-Google-50K.txt
数据。数据使用\t符号隔开,只有2列,第1列是源ID,第二列是目标ID。
0 11342
0 824020
0 867923
0 891835
...
(4)编写代码完成 pagerank 代码的编写,输出 pagerank 最高的10条记录。执行pageRank(resetProbability=0.15, maxIter=5)期望输出结果如下。
+------+------------------+
| id| pagerank|
+------+------------------+
| 41909| 81.50190348917354|
|558791| 78.3250432743214|
|504140| 75.73723862990924|
|425770| 68.88544689620157|
|486980| 63.80154874448043|
|597621| 63.62164804496628|
| 32163| 59.56603473319442|
|172133| 58.63369599218182|
|828963|57.424930826516814|
|185821| 55.15767238107176|
+------+------------------+
【实验提示】
请先思考再查看提示:
提示开始(鼠标选中以下空白区域会显示提示。)
- (1)把数据加载到 DataFrame
- (2)构造 vertices 和 edges 2个 DataFrame。其中vertices的必须列为id;edges必须的列为src(源顶点),dst(目标顶点)。
- (3)构造GraphFrame,并执行pageRank
- (4)对结果 vertices DataFrame 中的 pagerank 进行排序输出。
- (5)由于计算量较大,可以考虑对计算出来的 DataFrame 进行缓存。