Zacznij terazZacznij za darmo

Podgląd schematu

Jak wiesz z poprzednich rozdziałów, implementacja ALS w Sparku wymaga, aby kolumny movieId i userId były w formacie całkowitoliczbowym (integer). Wiele zbiorów danych wymaga odpowiedniego przygotowania, zanim będą poprawnie współpracować ze Sparkiem. Częstym problemem jest to, że Spark traktuje liczby jako ciągi znaków – i odwrotnie.

W tym ćwiczeniu użyjesz metody .cast(), aby rozwiązać tego rodzaju problemy. Zacznij od sprawdzenia schematu zbioru danych i upewnij się, że dane mają właściwy format.

To ćwiczenie jest częścią kursu

Budowanie silników rekomendacji w PySpark

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj .printSchema(), aby sprawdzić, czy zbiór danych z ocenami zawiera odpowiednie typy danych dla ALS. Czy kolumny userId i movieId są typu integer? Czy kolumna rating ma format liczbowy?
  • Upewnij się, że kolumny ramki danych ratings mają właściwe typy danych. Wywołaj metodę cast() na każdej kolumnie: ustaw userID i movieId jako typ "integer", a rating jako typ "double". (Kolumna timestamp nie jest nam potrzebna, więc możesz ją pominąć.)
  • Wywołaj .printSchema() ponownie na ratings, aby potwierdzić, że typy danych są teraz poprawne.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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.____()
Edytuj i uruchom kod