Używanie funkcji definiowanych przez użytkownika w Spark
Widzisz już, jak duże możliwości dają wbudowane funkcje tekstowe Sparka przy manipulowaniu DataFrames. Jednak w pewnym momencie przetwarzanie danych bez tworzenia skomplikowanego splotu zagnieżdżonych wywołań staje się bardzo trudne. To właśnie miejsce, gdzie przydają się funkcje definiowane przez użytkownika (UDF) – pozwalają manipulować DataFrames w przejrzysty sposób.
W tym ćwiczeniu skorzystasz z DataFrame voter_df i zastąpisz kolumnę first_name kolumną zawierającą imię oraz drugie imię.
Biblioteka pyspark.sql.functions jest dostępna pod aliasem F. Klasy z pyspark.sql.types są już zaimportowane.
To ćwiczenie jest częścią kursu
Czyszczenie danych w PySpark
Instrukcje do ćwiczenia
- Zmodyfikuj funkcję
getFirstAndMiddle()tak, aby zwracała oddzielone spacją imiona z listy – z pominięciem ostatniego elementu. - Zdefiniuj tę funkcję jako funkcję definiowaną przez użytkownika (UDF). Powinna zwracać typ tekstowy.
- Utwórz nową kolumnę w
voter_dfo nazwiefirst_and_middle_name, używając swojej funkcji UDF. - Wyświetl DataFrame.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
def getFirstAndMiddle(names):
# Return a space separated string of names
return ' '.join(____)
# Define the method as a UDF
udfFirstAndMiddle = F.____(____, ____)
# Create a new column using your UDF
voter_df = voter_df.withColumn('first_and_middle_name', ____(____))
# Show the DataFrame
____