Carregar o conjunto de dados Movie Lens em RDDs
A filtragem colaborativa é uma técnica para sistemas de recomendação em que as classificações e interações dos usuários com vários produtos são usadas para recomendar novos produtos. Com o advento do aprendizado de máquina e do processamento paralelo de dados, os sistemas de recomendação se tornaram muito populares nos últimos anos e são utilizados em diversas áreas, incluindo filmes, músicas, notícias, livros, artigos de pesquisa, consultas de pesquisa e tags sociais. Neste exercício de três partes, seu objetivo é desenvolver um sistema simples de recomendação de filmes usando o PySpark MLlib com um subconjunto do conjunto de dados MovieLens 100k.
Na primeira parte, você primeiro carregará os dados do MovieLens (ratings.csv
) no RDD e, a partir de cada linha do RDD, que é formatada como userId,movieId,rating,timestamp
, você precisará mapear os dados do MovieLens para um objeto Ratings (userID, productID, rating
) após remover a coluna de carimbo de data/hora e, por fim, dividirá o RDD em RDDs de treinamento e teste.
Lembre-se de que você tem um SparkContext sc
disponível em seu espaço de trabalho. Além disso, a variável file_path
(que é o caminho para o arquivo ratings.csv
) e a classe ALS (ou seja, Rating
) já estão disponíveis em seu espaço de trabalho.
Este exercício faz parte do curso
Fundamentos de Big Data com PySpark
Instruções do exercício
- Carregue o conjunto de dados
ratings.csv
em um RDD. - Divida o RDD usando
,
como um delimitador. - Para cada linha do RDD, usando a classe
Rating()
, crie uma tupla deuserID, productID, rating
. - Divida aleatoriamente os dados em dados de treinamento e dados de teste (0,8 e 0,2).
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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])