User Defined Functions gebruiken in Spark
Je hebt al gezien hoe krachtig de ingebouwde stringfuncties van Spark zijn voor het bewerken van DataFrames. Maar op een gegeven moment wordt het lastig om de data te verwerken zonder een onoverzichtelijke wirwar van functieketens te maken. Dit is een situatie waarin je User Defined Functions kunt gebruiken om DataFrames te manipuleren.
In deze oefening gebruiken we het DataFrame voter_df, maar je gaat de kolom first_name vervangen door de voor- en tweede naam.
De bibliotheek pyspark.sql.functions is beschikbaar onder het alias F. De klassen uit pyspark.sql.types zijn al geïmporteerd.
Deze oefening maakt deel uit van de cursus
Data opschonen met PySpark
Oefeninstructies
- Bewerk de functie
getFirstAndMiddle()zodat die een door spaties gescheiden string met namen retourneert, behalve het laatste element in de namenlijst. - Definieer de functie als een user-defined function. De returnwaarde moet van het type string zijn.
- Maak een nieuwe kolom op
voter_dfmet de naamfirst_and_middle_namemet behulp van je UDF. - Laat het DataFrame zien.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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
____