基于Spark和Flask的一个可伸缩的电影推荐系统

jopen 8年前

 这份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我们就可以实现在线电影推荐了。

关于如何运行使用这个服务的详细指导请参考 笔记第二部分

谢谢分享!

</div>