Dalsze przetwarzanie
Przekształcono ten zbiór danych do zupełnie innego formatu niż pierwotny, ale zostało jeszcze kilka rzeczy do zrobienia. Trzeba przygotować dane w kolumnach do dalszej analizy i usunąć kilka kolumn pomocniczych.
Kontekst spark jest dostępny, a pyspark.sql.functions jest zaimportowany pod aliasem F. Typy z pyspark.sql.types są już zaimportowane. DataFrame split_df jest w takim stanie, w jakim go ostatnio zostawiono. Pamiętaj, że możesz użyć .printSchema() na DataFrame w obszarze konsoli, aby podejrzeć nazwy i typy kolumn.
⚠️ Uwaga: Jeśli pojawi się błąd AttributeError, odśwież ćwiczenia i kliknij Pokaż odpowiedź bez wcześniejszego klikania Uruchom kod.
To ćwiczenie jest częścią kursu
Czyszczenie danych w PySpark
Instrukcje do ćwiczenia
- Utwórz nową funkcję o nazwie
retriever, która przyjmuje dwa argumenty: podzielone kolumny (cols) oraz łączną liczbę kolumn (colcount). Funkcja powinna zwracać listę wpisów, które nie zostały jeszcze zdefiniowane jako kolumny (czyli wszystko po elemencie o indeksie 4 na liście). - Zdefiniuj tę funkcję jako UDF Sparka, zwracający tablicę ciągów znaków.
- Utwórz nową kolumnę
dog_list, korzystając z UDF i dostępnych kolumn w DataFrame. - Usuń kolumny
_c0,colcountisplit_cols.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
def retriever(____, ____):
# Return a list of dog data
return ____[4:____]
# Define the method as a UDF
udfRetriever = ____(____, ArrayType(____))
# Create a new column using your UDF
split_df = split_df.withColumn('dog_list', ____(____, ____))
# Remove the original column, split_cols, and the colcount
split_df = split_df.drop('____').____('____').____('____')