开始使用免费开始使用

将 Movie Lens 数据集加载到 RDD

协同过滤是一种用于推荐系统的技术,它利用用户对各类产品的评分与交互来推荐新的内容。随着机器学习与数据并行处理的发展,推荐系统在近几年广泛流行,并被应用于电影、音乐、新闻、图书、研究文章、搜索查询、社交标签等多个领域。在这个由 3 个部分组成的练习中,您的目标是使用 PySpark MLlib,并基于 MovieLens 100k 数据集 的一个子集,开发一个简单的电影推荐系统。

在第一部分,您将把 MovieLens 数据集(ratings.csv)加载为 RDD。RDD 中的每一行格式为 userId,movieId,rating,timestamp。您需要在去除时间戳列后,将其映射为 Ratings 对象(userID, productID, rating),最后将该 RDD 划分为训练 RDD 和测试 RDD。

请记住,您的工作区中已提供 SparkContext sc。变量 file_path(即 ratings.csv 文件路径)以及 ALS 所用的类(即 Rating)也已在您的工作区中就绪。

本练习是课程的一部分

使用 PySpark 的大数据基础

查看课程

练习说明

  • ratings.csv 数据集加载为一个 RDD。
  • 使用 , 作为分隔符拆分 RDD。
  • 对 RDD 的每一行,使用 Rating() 类创建 userID, productID, rating 三元组。
  • 将数据随机划分为训练集与测试集(0.8 和 0.2)。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Load the data into RDD
data = sc.____(file_path)

# Split the RDD 
ratings = data.____(lambda l: l.split('____'))

# Transform the ratings RDD 
ratings_final = ratings.____(lambda line: Rating(int(line[0]), int(____), float(____)))

# Split the data into training and test
training_data, test_data = ratings_final.____([0.8, 0.2])
编辑并运行代码