Utiliser des fonctions définies par l’utilisateur dans Spark
Vous avez vu une partie de la puissance des fonctions de chaîne intégrées de Spark pour manipuler des DataFrames. Cependant, passé un certain point, il devient difficile de traiter les données sans créer un enchevêtrement d’appels de fonctions. C’est un cas où vous pouvez utiliser des fonctions définies par l’utilisateur (UDF) pour manipuler vos DataFrames.
Pour cet exercice, nous allons utiliser le DataFrame voter_df, mais vous allez remplacer la colonne first_name par les prénom et deuxième prénom.
La bibliothèque pyspark.sql.functions est disponible sous l’alias F. Les classes de pyspark.sql.types sont déjà importées.
Cet exercice fait partie du cours
Nettoyer des données avec PySpark
Instructions
- Modifiez la fonction
getFirstAndMiddle()pour renvoyer une chaîne de caractères d’espaces séparant les noms, à l’exception du dernier élément de la liste des noms. - Définissez la fonction comme une fonction définie par l’utilisateur. Elle doit renvoyer un type chaîne.
- Créez une nouvelle colonne sur
voter_dfappeléefirst_and_middle_nameà l’aide de votre UDF. - Affichez le DataFrame.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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
____