Správný formát a unikátní uživatelé
Prohlédni si dataframe R. Všimni si, že je v klasickém neboli „širokém" formátu – každý sloupec představuje jiný film. Také si všimni, že jména Userů a filmů nejsou v celočíselném formátu. Postupuj podle kroků níže a správně připrav tato data pro ALS.
Toto cvičení je součástí kurzu
Tvorba doporučovacích systémů s PySparkem
Pokyny k cvičení
- Importuj balíček
monotonically_increasing_idzpyspark.sql.functionsa zobraz dataframeRpomocí metody.show(). - Pomocí funkce
to_long()převeď dataframeRdo „dlouhého" formátu. Nový dataframe pojmenujratings. - Vytvoř dataframe
users, který bude obsahovat všechny unikátní uživatele pomocí.distinct(), a přerozděl ho do jednoho oddílu metodou.coalesce(1). - Pomocí metody
monotonically_increasing_id()uvnitřwithColumn()přidej do dataframuusersnový sloupec s unikátním celým číslem pro každého uživatele. Pojmenuj tento sloupecuserId. Nezapomeň na závěr zavolat metodu.persist(), aby nová celočíselná ID zůstala zachována.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()