Aan de slagBegin gratis

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

Bekijk cursus

Oefeninstructies

  • Gebruik .printSchema() om te controleren of de ratings-gegevensset de juiste datatypen bevat zodat ALS correct kan werken. Zijn de userIds en movieIds van het datatype integer? Staan de ratings in numeriek formaat?
  • Zorg dat de kolommen van de ratings-dataframe de juiste datatypen hebben. Roep de cast()-methode aan op elke kolom en specificeer dat de kolommen userID en movieId van type "integer" moeten zijn en de kolom rating van type "double". (We hebben de kolom timestamp niet nodig, dus die kun je weglaten.)
  • Roep .printSchema() opnieuw aan op ratings om 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.____()
Code bewerken en uitvoeren