基于Spark和Flask的一个可伸缩的电影推荐系统
jopen
9年前
这份Apache Spark教程可以指导你逐步了解如何使用 MovieLens 数据集,基于 协同过滤 建立一个电影推荐系统。协同过滤使用 Spark的交替最小方差(ALS) 算法。
该教程由两部分组成。第一部分是关于在Spark的RDDs(Resilient Distributed Datasets,是一个并行的容错数据结构,可以让用户显示地将数据存储到磁盘和内存中,并能控制数据的分区)中获取并解析电影和评分数据。第二部分是关于建立和使用推荐系统,并在稍后的在线推荐系统中沿用它。这两部分最近都发布在了 Codementor.io 。
第一部分: 建立推荐系统
第二部分: 建立并运行web服务
这份教程可以被单独用来建立基于MovieLens数据集的电影推荐系统。单从使用这个数据集或这个算法方面来看都不算是创新(我推荐你看 EdX course 或是 Google 的例子)。因为我们把重点放在最终得到一个在线环境下可用的模型,并且在不同情形下都可以使用。教程的第二部分解释了在Spark模型上如何使用Python、Flask建立web服务。通过这些工作,你就能够开发一个完整的在线电影推荐服务。
快速开始
本教程的应用程序已经拥有自己的 代码仓库(repository) 了 ,未来还会继续发展。请尽情fork开发自己的应用吧!
文件server/server.py启动了 CherryPy 服务器,这个服务器会运行 Flask 的app.py以启动一个基于Spark的RESTful web服务器engine.py。通过API我们就可以实现在线电影推荐了。
关于如何运行使用这个服务的详细指导请参考 笔记第二部分 。
谢谢分享!