Spark 处理MovieLens 100k数据集案例

一、获取数据集

  我们使用的实验数据集是一个电影推荐方面的常用数据集MovieLens。它能应用于推荐系统和其它可能的机器学习任务,适合作为示例数据集。

  数据下载地址:
  https://grouplens.org/datasets/movielens/100k/

《Spark 处理MovieLens 100k数据集案例》 datasets/movielens/100k

  下载并解压数据集,关于数据集的更多信息可以从README获得,包括每个文件里的变量定义。我们可以使用head命令来查看各个文件中的内容。

MacBook-Pro:ml-100k xp$ head -5 u.user
1|24|M|technician|85711
2|53|F|other|94043
3|23|M|writer|32067
4|24|M|technician|43537
5|33|F|other|15213
MacBook-Pro:ml-100k xp$ head -5 u.item
1|Toy Story (1995)|01-Jan-1995||http://us.imdb.com/M/title-exact?Toy%20Story%20(1995)|0|0|0|1|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0
2|GoldenEye (1995)|01-Jan-1995||http://us.imdb.com/M/title-exact?GoldenEye%20(1995)|0|1|1|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0
3|Four Rooms (1995)|01-Jan-1995||http://us.imdb.com/M/title-exact?Four%20Rooms%20(1995)|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|0|0
4|Get Shorty (1995)|01-Jan-1995||http://us.imdb.com/M/title-exact?Get%20Shorty%20(1995)|0|1|0|0|0|1|0|0|1|0|0|0|0|0|0|0|0|0|0
5|Copycat (1995)|01-Jan-1995||http://us.imdb.com/M/title-exact?Copycat%20(1995)|0|0|0|0|0|0|1|0|1|0|0|0|0|0|0|0|1|0|0

二、可视化数据

  有数据后,我们来启动Spark交互式终端来探索数据。我们使用IPython终端和matplotlib库对数据进行处理和可视化。

  IPython的开发者吸收了标准解释器的基本概念,在此基础上进行了大量的改进,创造出一个令人惊奇的工具。在它的主页上是这么说的:“这是一个增强的交互式Pythonshell。”具有tab补全,对象自省,强大的历史机制,内嵌的源代码编辑,集成Python调试器,%run机制,宏,创建多个环境以及调用系统shell的能力。

  1)IPython与标准Python的最大区别在于,Ipython会对命令提示符的每一行进行编号。
  2)tab补全
  3)历史机制
  hist可以快速查看那些输入的历史记录。
  hist-n可以快速查看并去掉历史记录中的序号,这样你就可以方便的将代码复制到一个文本编辑器中。
  4)断点调试:如果你的程序是由命令行开始执行的,即在命令行下输入python foo.py(大部分 Python 程序都是),那么你还可以利用 IPython在你的程序任意地方进行断点调试。

  注:ipython-notebook已经整合(或者改名)到“Jupyter”中了。在http://jupyter.readthedocs.org/en/latest/install.html这个网站上,有着极其简便的python-notebook的安装方式。

  1.Jupyter搭建,可以使用pip命令进行安装:
  (参考:https://jupyter.readthedocs.io/en/latest/install.html

pip3 install --upgrade pip

《Spark 处理MovieLens 100k数据集案例》 upgrade pip

pip3 install jupyter

《Spark 处理MovieLens 100k数据集案例》 install jupyter

  1. Jupyter使用:
jupyter notebook

《Spark 处理MovieLens 100k数据集案例》 jupyter notebook.png

此时即启动了jupyter notebook,此时浏览器中会弹出notebook窗口(http://localhost:8888/tree)。如下图所示:

《Spark 处理MovieLens 100k数据集案例》 http://localhost:8888/

  Files下面列出了当前用户目录下所有的文件,结合右上角的upload和new你可以方便地进行文件操作。你先选择一个目录,在该目录下,new一个python3,这样当前目录即会出现一个“.ipynb”文件,同时,浏览器会弹新的标签页让你编辑该“.ipynb”文件。

  (参考:Mac下Jupyter(即IPython-notebook)的搭建及使用

三、运行示例

本次我们将在jupyter notebook上运行《Spark机器学习》第三章示例。
点击Machine Learning with Spark, Chapter 3. MovieLens 100k Analysis..ipynb文件,浏览器会弹新的标签页显示运行结果如下:

《Spark 处理MovieLens 100k数据集案例》 运行结果1
《Spark 处理MovieLens 100k数据集案例》 运行结果2

  至此,Spark 处理MovieLens 100k数据集案例运行成功,案例详细解读请参考《Spark机器学习》一书第三章。

    原文作者:Haraway
    原文地址: https://www.jianshu.com/p/7f6b6f06630b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞