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
Pokyny k cvičení
- Pomocí
.printSchema()zkontroluj, zda datová sada s hodnoceními obsahuje správné datové typy pro správnou funkci ALS. JsouuserIdamovieIdve formátu integer? Jsouratingv číselném formátu? - Ujisti se, že sloupce dataframu
ratingsmají správné datové typy. Zavolej metoducast()na každém sloupci a nastav sloupceuserIDamovieIdna typ"integer"a sloupecratingna typ"double". (Sloupectimestampnepotřebujeme, takže ho přeskočíme.) - Zavolej
.printSchema()znovu naratingsa 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.____()