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, traiter les données sans créer un enchevêtrement d'appels de fonctions devient difficile. C'est un bon cas d'usage pour les fonctions définies par l'utilisateur (UDF) afin de manipuler nos DataFrames.
Pour cet exercice, nous allons utiliser le DataFrame voter_df, mais vous allez remplacer la colonne first_name par le prénom et le 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.
Cette activité fait partie du cours
Nettoyer des données avec PySpark
Instructions de l’exercice
- Modifiez la fonction
getFirstAndMiddle()pour renvoyer une chaîne contenant les noms séparés par des espaces, sauf la dernière entrée de la liste des noms. - Définissez la fonction comme une fonction définie par l'utilisateur (UDF). Elle doit retourner 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 ce code d’exemple.
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
____