Schema bekijken
Zoals je in eerdere hoofdstukken hebt gezien, vereist Sparks implementatie van ALS dat movieIds en userIds van het datatype integer zijn. Veel gegevenssets moeten hierop worden voorbereid om goed met Spark te werken. Een veelvoorkomend probleem is dat Spark denkt dat getallen strings zijn, en andersom.
Hier gebruik je de .cast()-methode om dit soort problemen op te lossen. Laten we naar het schema van de gegevensset kijken om te controleren of het juiste formaat wordt gebruikt.
Deze oefening maakt deel uit van de cursus
Aanbevelingssystemen bouwen met PySpark
Oefeninstructies
- Gebruik
.printSchema()om te controleren of de ratings-gegevensset de juiste datatypen bevat zodat ALS correct kan werken. Zijn deuserIds enmovieIds van het datatype integer? Staan deratings in numeriek formaat? - Zorg dat de kolommen van de
ratings-dataframe de juiste datatypen hebben. Roep decast()-methode aan op elke kolom en specificeer dat de kolommenuserIDenmovieIdvan type"integer"moeten zijn en de kolomratingvan type"double". (We hebben de kolomtimestampniet nodig, dus die kun je weglaten.) - Roep
.printSchema()opnieuw aan opratingsom te bevestigen dat de datatypen nu kloppen.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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.____()