ComeçarComece de graça

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

Ver curso

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 de userID, 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])
Editar e executar o código