Visa schema
Som du vet från tidigare kapitel kräver Sparks implementation av ALS att movieId och userId anges som heltalsdatatyper. Många datamängder behöver förberedas på rätt sätt för att fungera korrekt med Spark. Ett vanligt problem är att Spark tolkar siffror som strängar, eller tvärtom.
Här använder du metoden .cast() för att hantera den här typen av problem. Börja med att undersöka datamängdens schema för att kontrollera att formatet är korrekt.
Den här övningen är en del av kursen
Bygg rekommendationsmotorer med PySpark
Övningsinstruktioner
- Använd
.printSchema()för att kontrollera om betygsdatamängden innehåller rätt datatyper för att ALS ska fungera korrekt. AngesuserIdochmovieIdsom heltalsdatatyper? Ärrating-värdena i numeriskt format? - Kontrollera att kolumnerna i
ratings-dataframen har rätt datatyper. Anropa metodencast()på varje kolumn och ange att kolumnernauserIDochmovieIdska vara av typen"integer"och kolumnenratingav typen"double". (Kolumnentimestampbehöver vi inte, så den kan vi hoppa över.) - Anropa
.printSchema()igen påratingsför att bekräfta att datatyperna nu är korrekta.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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.____()