Benutzerdefinierte Funktionen in Spark verwenden
Du hast gesehen, was die in Spark eingebauten String-Funktionen leisten, wenn es darum geht, DataFrames zu manipulieren. Ab einem bestimmten Punkt wird es jedoch schwierig, die Daten zu verarbeiten, ohne ein Rattennest von Funktionsaufrufen zu erzeugen. Hier ist eine Stelle, an der du benutzerdefinierte Funktionen verwenden kannst, um unsere DataFrames zu manipulieren.
Für diese Übung verwenden wir unseren voter_df
DataFrame, aber du wirst die Spalte first_name
durch den Vor- und den Mittelnamen ersetzen.
Die Bibliothek pyspark.sql.functions
ist unter dem Alias F
verfügbar. Die Klassen von pyspark.sql.types
sind bereits importiert.
Diese Übung ist Teil des Kurses
Daten bereinigen mit PySpark
Anleitung zur Übung
- Bearbeite die Funktion
getFirstAndMiddle()
so, dass sie eine durch Leerzeichen getrennte Zeichenkette von Namen zurückgibt, außer dem letzten Eintrag in der Namensliste. - Definiere die Funktion als benutzerdefinierte Funktion. Sie sollte einen String-Typ zurückgeben.
- Erstelle eine neue Spalte auf
voter_df
mit dem Namenfirst_and_middle_name
unter Verwendung deiner UDF. - Zeige den Datenrahmen an.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
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
____