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_df
appeléefirst_and_middle_name
en 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
____