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

1364 查看

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

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

谢谢分享!