CommencerCommencer 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, 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

Afficher le cours

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