Spark 第八章 GraphFrames 图计算实验手册

2020-05-24
2分钟阅读时长

【版本】

当前版本号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

【实验步骤】

  1. 确保虚拟机可以联网。

  2. 运行以下命令,安装 GraphFrames 库依赖。

spark-submit --packages graphframes:graphframes:0.8.0-spark2.4-s_2.11 hello.py
  1. 启用开发环境。

(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 进行缓存。
提示结束