Format corect și utilizatori distincți
Aruncă o privire la dataframe-ul R. Observă că acesta este în formatul convențional sau „wide", cu câte un film diferit în fiecare coloană. De asemenea, observă că numele utilizatorilor (User) și numele filmelor nu sunt în format întreg. Urmează pașii de mai jos pentru a pregăti corect aceste date pentru ALS.
Acest exercițiu face parte din cursul
Construiește motoare de recomandare cu PySpark
Instrucțiuni pentru exercițiu
- Importă pachetul
monotonically_increasing_iddinpyspark.sql.functionsși vizualizează dataframe-ulRfolosind metoda.show(). - Folosește funcția
to_long()pentru a converti dataframe-ulRîntr-un dataframe în format „long". Numește noul dataframeratings. - Creează un dataframe numit
userscare să conțină toți utilizatorii.distinct()din dataframe și repartizează-l într-o singură partiție folosind metoda.coalesce(1). - Folosește metoda
monotonically_increasing_id()în interiorul funcțieiwithColumn()pentru a crea o nouă coloană în dataframe-ulusers, care să conțină un număr întreg unic pentru fiecare utilizator. Numește această coloanăuserId. Asigură-te că apelezi metoda.persist()pe dataframe-ul final, pentru ca noile ID-uri întregi să fie păstrate.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Import monotonically_increasing_id and show R
from pyspark.sql.functions import ____
R.show()
# Use the to_long() function to convert the dataframe to the "long" format.
ratings = to_long(____)
ratings.show()
# Get unique users and repartition to 1 partition
users = ratings.select("____").____().____()
# Create a new column of unique integers called "userId" in the users dataframe.
users = users.withColumn("____", monotonically_increasing_id()).____()
users.show()