Poprawny format i unikalni użytkownicy
Przyjrzyj się ramce danych R. Zauważ, że jest w konwencjonalnym, „szerokim" formacie – każdy film zajmuje osobną kolumnę. Zwróć też uwagę, że nazwy użytkowników (User) i filmów nie są w formacie całkowitoliczbowym. Wykonaj kolejne kroki, aby poprawnie przygotować te dane do użycia z algorytmem ALS.
To ćwiczenie jest częścią kursu
Budowanie silników rekomendacji w PySpark
Instrukcje do ćwiczenia
- Zaimportuj pakiet
monotonically_increasing_idzpyspark.sql.functionsi wyświetl ramkę danychRza pomocą metody.show(). - Użyj funkcji
to_long(), aby przekonwertować ramkę danychRdo formatu „długiego". Nową ramkę danych nazwijratings. - Utwórz ramkę danych o nazwie
users, która będzie zawierać wszystkich unikalnych użytkowników (.distinct()) z ramki danych, a następnie podziel ją na jedną partycję za pomocą metody.coalesce(1). - Użyj metody
monotonically_increasing_id()wewnątrzwithColumn(), aby dodać do ramki danychusersnową kolumnę z unikalną liczbą całkowitą dla każdego użytkownika. Nazwij tę kolumnęuserId. Pamiętaj, aby wywołać metodę.persist()na końcowej ramce danych – dzięki temu nowe identyfikatory całkowite zostaną zachowane.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()