Правильный формат и уникальные пользователи
Изучите датафрейм R. Обратите внимание, что он представлен в стандартном, или «широком», формате: каждый фильм занимает отдельный столбец. Также обратите внимание, что имена пользователей и названия фильмов не представлены в целочисленном формате. Выполните следующие шаги, чтобы правильно подготовить эти данные для 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()