Rätt format och unika användare
Ta en titt på dataramen R. Lägg märke till att den är i konventionellt eller "brett" format med en annan film i varje kolumn. Observera också att User-kolumnen och filmnamnen inte är i heltalsformat. Följ stegen för att förbereda dessa data korrekt för ALS.
Den här övningen är en del av kursen
Bygg rekommendationsmotorer med PySpark
Övningsinstruktioner
- Importera paketet
monotonically_increasing_idfrånpyspark.sql.functionsoch visa dataramenRmed hjälp av metoden.show(). - Använd funktionen
to_long()för att konvertera dataramenRtill ett "långt" format. Kalla den nya dataramen förratings. - Skapa en dataram med namnet
userssom innehåller alla.distinct()användare från dataramen och partitionera om den till en partition med hjälp av metoden.coalesce(1). - Använd metoden
monotonically_increasing_id()inutiwithColumn()för att skapa en ny kolumn i dataramenuserssom innehåller ett unikt heltal för varje användare. Kalla kolumnen föruserId. Se till att anropa metoden.persist()på den slutliga dataramen så att de nya heltals-ID:na bevaras.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()