Schema anzeigen
Wie du aus den vorherigen Kapiteln weißt, verlangt Sparks Implementierung von ALS, dass movieIds und userIds als Integer-Datentypen vorliegen. Viele Datensätze müssen dafür entsprechend vorbereitet werden, damit sie mit Spark korrekt funktionieren. Ein häufiges Problem ist, dass Spark Zahlen für Strings hält – und umgekehrt.
Hier nutzt du die Methode .cast(), um solche Probleme zu beheben. Schau dir das Schema des Datensatzes an, um sicherzustellen, dass alles im richtigen Format vorliegt.
Diese Übung ist Teil des Kurses
<Kurs>Recommendation Engines mit PySpark erstellen</Kurs>Übungsanweisungen
- Verwende
.printSchema(), um zu prüfen, ob der Ratings-Datensatz die passenden Datentypen hat, damit ALS korrekt funktioniert. LiegenuserIds undmovieIds als Integer-Datentypen vor? Sind dieratings numerisch? - Stelle sicher, dass die Spalten des DataFrames
ratingsdie richtigen Datentypen haben. Rufe für jede Spaltecast()auf und setze die SpaltenuserIDundmovieIdauf den Typ"integer"und die Spalteratingauf den Typ"double". (Die Spaltetimestampbrauchen wir nicht, die können wir weglassen.) - Rufe erneut
.printSchema()aufratingsauf, um zu bestätigen, dass die Datentypen jetzt korrekt sind.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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.____()