Začněte nyníZačněte zdarma

Zobrazení schématu

Jak už víš z předchozích kapitol, Sparkova implementace ALS vyžaduje, aby movieId a userId byly zadány jako celá čísla (datový typ integer). Mnoho datových sad je potřeba před použitím ve Sparku odpovídajícím způsobem připravit. Častým problémem je, že Spark považuje čísla za řetězce, nebo naopak.

Zde použiješ metodu .cast(), abys tento typ problémů vyřešil/a. Nejdříve se podíváme na schéma datové sady a ověříme, že je ve správném formátu.

Toto cvičení je součástí kurzu

Tvorba doporučovacích systémů s PySparkem

Zobrazit kurz

Pokyny k cvičení

  • Pomocí .printSchema() zkontroluj, zda datová sada s hodnoceními obsahuje správné datové typy pro správnou funkci ALS. Jsou userId a movieId ve formátu integer? Jsou rating v číselném formátu?
  • Ujisti se, že sloupce dataframu ratings mají správné datové typy. Zavolej metodu cast() na každém sloupci a nastav sloupce userID a movieId na typ "integer" a sloupec rating na typ "double". (Sloupec timestamp nepotřebujeme, takže ho přeskočíme.)
  • Zavolej .printSchema() znovu na ratings a potvrď, že datové typy jsou teď správně nastaveny.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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.____()
Upravit a spustit kód