ÎncepețiÎncepe gratuit

Vizualizarea schemei

Așa cum ai văzut în capitolele anterioare, implementarea ALS din Spark necesită ca movieId-urile și userId-urile să fie furnizate ca tipuri de date integer. Multe seturi de date trebuie pregătite în consecință pentru a funcționa corect cu Spark. O problemă frecventă este că Spark interpretează numerele ca șiruri de caractere și invers.

În acest exercițiu, vei folosi metoda .cast() pentru a rezolva astfel de probleme. Să examinăm schema setului de date și să ne asigurăm că este în formatul corect.

Acest exercițiu face parte din cursul

Construiește motoare de recomandare cu PySpark

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește .printSchema() pentru a verifica dacă setul de date de evaluări conține tipurile de date corecte pentru ca ALS să funcționeze. userId-urile și movieId-urile sunt furnizate ca tipuri integer? rating-urile sunt în format numeric?
  • Asigură-te că coloanele dataframe-ului ratings au tipurile de date corecte. Apelează metoda cast() pe fiecare coloană și specifică tipul "integer" pentru coloanele userID și movieId, respectiv tipul "double" pentru coloana rating. (Coloana timestamp nu ne este necesară, deci o putem ignora.)
  • Apelează din nou .printSchema() pe ratings pentru a confirma că tipurile de date sunt acum corecte.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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.____()
Editează și rulează codul