基于spark的电影推荐

本文介绍了如何使用Spark构建推荐系统,详细讲述了从创建Spark对象、数据准备、模型训练到推荐和电影名显示的过程。示例中使用了MovieLens 1M数据集,通过ALS模块进行训练,展示了针对用户和电影的推荐方法。
摘要由CSDN通过智能技术生成

  在《推荐系统》中,详细的介绍了常用的推荐系统,大家基本上对推荐系统有了一个认识。这里我就简单的讲述一下基于spark的推荐系统。
  spark有着处理速度快,容易使用,而且可以和很多数据库融合的优势,所以在大数据分析中经常使用。具体的介绍我就不在这里赘述了,有兴趣的童鞋可以去看看《Spark快速大数据分析》,这本书详细的介绍了spark的基础知识和使用方法,是我学过spark中讲解最清晰和最容易入门的书籍,下面我们就开始推荐系统的介绍了。
  下面使用的是MovieLens数据集,由于是个人练习,我使用的是 1M 数据集 ml-latest-small.zip 。spark 版本为 2.4.0。

创建spark对象

	import findspark
	findspark.init("/opt/spark", edit_rc=True)   
	
	from pyspark import SparkContext
	
	sc = SparkContext("local", "john-spark")

  findspark 引入 pyspark 依赖,/opt/spark 为我的 spark 安装路径。
  local: 本地运行
  john-spark:应用名

数据准备

  1. 导入数据
	text = sc.textFile("./data/ml-latest-small/ratings.csv")
	text = text .filter(lambda x: "movieId" not in x)    # 去除标题行

  导入数据,我们也可以熟悉一下数据:

	text.count()      # 查看数据数量
	text.take(5)      # 查看前5条数据

  数据格式为:

	['1,1,4.0,964982703',
	 '1,3,4.0,964981247',
	 '1,6,4.0,964982224',
	 '1,47,5.0,964983815',
	 '1,50,5.0,964982931']
  1. 数据处理
    spark主要有四种数据类型:Vector(向量),LabeledPoint(数据点,主要用在分类回归这些算法中)、Rating(评分,用于推荐)、model(模型,训练结果)。我们这里使用的是Rating,Rating定义如下:
    R a t i n g ( u s e r , p r o d u c t , p r o d u c t ) Rating(user, product, product) Rating(user,product,product)

  所以我们这里只需要使用前三列:userId,movieId,rating。

	movieRatings = text.map(lambda x: x.split(",")[:3])   # 取出前三列
	movieRatings.take(5)

  不熟悉命令的可以查看《spark快速大数据分析》第四章:RDD 编程。取出来的结果如下所示:

	[['1', '1', '4.0'],
	 ['1', '3', '4.0'],
	 ['1', '6'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值