Utiliser des fonctions définies par l'utilisateur dans Spark
Vous avez vu une partie de la puissance derrière les fonctions string intégrées de Spark lorsqu'il s'agit de manipuler des DataFrame. Cependant, à partir d'un certain point, il devient difficile de traiter les données sans créer un nid à rats d'appels de fonctions. Voici un endroit où vous pouvez utiliser des fonctions définies par l'utilisateur pour manipuler nos DataFrame.
Pour cet exercice, nous utiliserons notre DataFrame voter_df, mais vous remplacerez la colonne first_name par le prénom et le second 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 qu'elle renvoie une chaîne de noms séparés par des espaces, à l'exception de la dernière entrée de la liste de noms. - Définissez la fonction comme une fonction définie par l'utilisateur. Il doit renvoyer une chaîne de caractères.
- Créez une nouvelle colonne sur
voter_dfappeléefirst_and_middle_nameen utilisant votre UDF. - Affichez le cadre de données.
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
____