ПочатиПочніть безкоштовно

Переглянути схему

Як ви знаєте з попередніх розділів, реалізація ALS у Spark вимагає, щоб movieId та userId були цілими типами даних (integer). Багато наборів даних потрібно відповідно підготувати, щоб вони коректно працювали зі Spark. Поширена проблема — Spark сприймає числа як рядки, і навпаки.

Тут ви використаєте метод .cast() для розвʼязання таких питань. Перегляньмо схему набору даних, щоб упевнитися, що формат коректний.

Ця вправа є частиною курсу

Створення рушіїв рекомендацій у PySpark

Переглянути курс

Інструкції до вправи

  • Використайте .printSchema(), щоб перевірити, чи містить набір даних ratings належні типи даних для коректної роботи ALS. Чи подані userId і movieId як цілі типи даних? Чи мають rating числовий формат?
  • Переконайтеся, що стовпці датафрейму ratings мають правильні типи даних. Викличте метод cast() для кожного стовпця та вкажіть, що стовпці userID і movieId мають бути типу "integer", а стовпець rating — типу "double". (Стовпець 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.____()
Редагувати та запускати код