CommencezCommencez gratuitement

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

Voir le cours

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_df appelée first_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
____
Modifier et exécuter le code