CommencezCommencez gratuitement

Analyse plus poussée

Vous avez transformé cet ensemble de données en un format très différent de l'original, mais il reste encore quelques étapes. Vous devez préparer les données de colonnes pour les analyses ultérieures et retirer quelques colonnes intermédiaires.

Le contexte spark est disponible et pyspark.sql.functions est importé sous l'alias F. Les types de pyspark.sql.types sont déjà importés. Le DataFrame split_df est dans l'état où vous l'avez laissé. N'oubliez pas que vous pouvez utiliser .printSchema() sur un DataFrame dans la console pour voir les noms et les types des colonnes.

⚠️ Remarque : Si vous voyez un AttributeError, actualisez les exercices et cliquez sur Run Solution sans cliquer sur Exécuter le code.

Cette activité fait partie du cours

Nettoyer des données avec PySpark

Voir le cours

Instructions de l’exercice

  • Créez une nouvelle fonction appelée retriever qui prend deux arguments, les colonnes éclatées (cols) et le nombre total de colonnes (colcount). Cette fonction doit retourner une liste des éléments qui n'ont pas encore été définis comme colonnes (c.-à-d. tout ce qui suit l'élément 4 dans la liste).
  • Définissez la fonction comme une UDF Spark, qui retourne un tableau (Array) de chaînes de caractères.
  • Créez la nouvelle colonne dog_list à l'aide de l'UDF et des colonnes disponibles dans le DataFrame.
  • Supprimez les colonnes _c0, colcount et split_cols.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

def retriever(____, ____):
  # Return a list of dog data
  return ____[4:____]

# Define the method as a UDF
udfRetriever = ____(____, ArrayType(____))

# Create a new column using your UDF
split_df = split_df.withColumn('dog_list', ____(____, ____))

# Remove the original column, split_cols, and the colcount
split_df = split_df.drop('____').____('____').____('____')
Modifier et exécuter le code