Правильний формат і унікальні користувачі
Погляньте на датафрейм R. Зверніть увагу, що він у звичному або «широкому» форматі, де кожен стовпець відповідає окремому фільму. Також зауважте, що значення в стовпцях User і назви фільмів не є цілими числами. Виконайте кроки, щоб правильно підготувати ці дані для ALS.
Ця вправа є частиною курсу
Створення рушіїв рекомендацій у PySpark
Інструкції до вправи
- Імпортуйте пакет
monotonically_increasing_idзpyspark.sql.functionsі перегляньте датафреймRза допомогою методу.show(). - Використайте функцію
to_long(), щоб перетворити датафреймRна «довгий» датафрейм. Назвіть новий датафреймratings. - Створіть датафрейм
users, що містить усіх користувачів з.distinct()із датафрейма, і перерозбийте його на один розділ за допомогою методу.coalesce(1). - Використайте метод
monotonically_increasing_id()всерединіwithColumn(), щоб створити в датафреймі користувачів новий стовпець з унікальним цілим числом для кожного користувача. Назвіть цей стовпецьuserId. Обов'язково викличте метод.persist()для фінального датафрейма, щоб нові цілі ідентифікатори збереглися.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Import monotonically_increasing_id and show R
from pyspark.sql.functions import ____
R.show()
# Use the to_long() function to convert the dataframe to the "long" format.
ratings = to_long(____)
ratings.show()
# Get unique users and repartition to 1 partition
users = ratings.select("____").____().____()
# Create a new column of unique integers called "userId" in the users dataframe.
users = users.withColumn("____", monotonically_increasing_id()).____()
users.show()