Formato corretto e utenti unici
Dai un’occhiata al dataframe R. Nota che è nel formato convenzionale o "wide", con un film diverso in ogni colonna. Nota anche che i nomi degli utenti (User) e dei film non sono in formato intero. Segui i passaggi per preparare correttamente questi dati per ALS.
Questo esercizio fa parte del corso
Costruire motori di raccomandazione con PySpark
Istruzioni dell'esercizio
- Importa il pacchetto
monotonically_increasing_iddapyspark.sql.functionse visualizza il dataframeRusando il metodo.show(). - Usa la funzione
to_long()per convertire il dataframeRin un dataframe "long". Chiama il nuovo dataframeratings. - Crea un dataframe chiamato
usersche contenga tutti gli utenti.distinct()dal dataframe e ripartiziona il dataframe in una singola partizione usando il metodo.coalesce(1). - Usa il metodo
monotonically_increasing_id()all’interno diwithColumn()per creare una nuova colonna nel dataframe degli utenti che contenga un intero univoco per ogni utente. Chiama questa colonnauserId. Assicurati di chiamare il metodo.persist()sul dataframe finale per fare in modo che i nuovi ID interi persistano.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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()