Aan de slagGa gratis aan de slag

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

Cursus bekijken

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_df met de naam first_and_middle_name met 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
____
Code bewerken en uitvoeren