CommencerCommencer gratuitement

Analyse complémentaire

Vous avez transformé cet ensemble de données en un format très différent de ce qu'il était auparavant, mais il reste encore des choses à faire. Vous devez préparer les données des colonnes en vue d'une analyse ultérieure et supprimer quelques colonnes intermédiaires.

Le contexte spark est disponible et pyspark.sql.functions est aliasé F. Les types de pyspark.sql.types sont déjà importés. Le DataFrame split_df est tel que vous l'avez laissé la dernière fois. N'oubliez pas que vous pouvez utiliser .printSchema() sur un DataFrame dans la zone de console pour afficher les noms et les types de colonnes.

⚠️ Note : Si vous voyez un AttributeError, actualisez les exercices et cliquez sur Run Solution sans cliquer sur Run Code.

Cet exercice fait partie du cours

Nettoyer des données avec PySpark

Afficher le cours

Instructions

  • Créez une nouvelle fonction appelée retriever qui prend deux arguments, les colonnes scindées (cols) et le nombre total de colonnes (colcount). Cette fonction doit renvoyer une liste des entrées qui n'ont pas encore été définies en tant que colonnes (c'est-à-dire tout ce qui se trouve après l'élément 4 de la liste).
  • Définissez la fonction en tant qu'UDF Spark, renvoyant un tableau de chaînes de caractères.
  • Créez la nouvelle colonne dog_list en utilisant l'UDF et les colonnes disponibles dans le DataFrame.
  • Supprimez les colonnes _c0, colcount, et split_cols.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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