Завантаження набору даних MovieLens у RDD
Колаборативна фільтрація — це метод для рекомендаторних систем, у якому на основі оцінок користувачів та їхніх взаємодій із різними продуктами рекомендуються нові. З появою машинного навчання та паралельної обробки даних рекомендаторні системи стали дуже популярними останніми роками й використовуються в різних сферах, зокрема для фільмів, музики, новин, книжок, наукових статей, пошукових запитів, соціальних тегів. У цій вправі з трьох частин ваша мета — розробити просту систему рекомендацій фільмів за допомогою PySpark MLlib, використовуючи підмножину набору даних MovieLens 100k.
У першій частині ви спочатку завантажите дані MovieLens (ratings.csv) у RDD, а з кожного рядка в RDD у форматі userId,movieId,rating,timestamp вам потрібно зіставити дані MovieLens з об'єктом Ratings (userID, productID, rating), вилучивши стовпець timestamp, і зрештою розділити RDD на тренувальний і тестовий RDD.
Пам'ятайте, у вашому середовищі доступний SparkContext sc. Також змінна file_path (шлях до файлу ratings.csv) і клас ALS (тобто Rating) уже доступні у вашому робочому просторі.
Ця вправа є частиною курсу
Основи Big Data з 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])