НачатьНачать бесплатно

Просмотр схемы

Как вы знаете из предыдущих глав, реализация ALS в Spark требует, чтобы значения movieId и userId были представлены как целые числа (тип integer). Многие наборы данных необходимо подготовить соответствующим образом, иначе они не будут корректно работать со Spark. Распространённая проблема — Spark воспринимает числа как строки, и наоборот.

Здесь вы будете использовать метод .cast(), чтобы решить подобные проблемы с типами. Для начала давайте проверим схему набора данных и убедимся, что она соответствует нужному формату.

Это упражнение является частью курса

Построение рекомендательных систем с помощью PySpark

Посмотреть курс

Инструкции к упражнению

  • Используйте .printSchema(), чтобы проверить, содержит ли набор данных с оценками правильные типы данных для корректной работы ALS. Представлены ли userId и movieId как целые числа (integer)? Записаны ли rating в числовом формате?
  • Убедитесь, что столбцы датафрейма ratings имеют правильные типы данных. Вызовите метод cast() для каждого столбца: укажите тип "integer" для столбцов userID и movieId, а тип "double" — для столбца rating. (Столбец timestamp нам не нужен, поэтому его можно пропустить.)
  • Вызовите .printSchema() ещё раз для ratings, чтобы убедиться, что типы данных теперь заданы верно.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Use .printSchema() to see the datatypes of the ratings dataset
ratings.____()

# Tell Spark to convert the columns to the proper data types
ratings = ratings.select(ratings.userId.cast("____"), ratings.movieId.cast("____"), ratings.rating.cast("____"))

# Call .printSchema() again to confirm the columns are now in the correct format
ratings.____()
Редактировать и запускать код