CommencezCommencez gratuitement

Créer des colonnes

Dans ce chapitre, vous apprendrez à utiliser les méthodes définies par la classe DataFrame de Spark pour effectuer des opérations courantes sur les données.

Voyons comment effectuer des opérations colonne par colonne. Dans Spark, vous pouvez le faire avec la méthode .withColumn(), qui prend deux arguments : d'abord une chaîne de caractères avec le nom de votre nouvelle colonne, puis la nouvelle colonne elle-même.

La nouvelle colonne doit être un objet de la classe Column. En créer une est aussi simple que d'extraire une colonne de votre DataFrame avec df.colName.

La mise à jour d'un DataFrame Spark diffère un peu de l'utilisation de pandas, car un DataFrame Spark est immutable. Cela signifie qu'il ne peut pas être modifié et que les colonnes ne peuvent donc pas être mises à jour sur place.

Ainsi, toutes ces méthodes renvoient un nouveau DataFrame. Pour écraser le DataFrame original, vous devez réaffecter le DataFrame renvoyé en utilisant la méthode, comme ceci :

df = df.withColumn("newCol", df.oldCol + 1)

Le code ci-dessus crée un DataFrame avec les mêmes colonnes que df, plus une nouvelle colonne, newCol, où chaque entrée est égale à l'entrée correspondante de oldCol, plus un.

Pour écraser une colonne existante, il suffit de passer le nom de la colonne comme premier argument!

N'oubliez pas qu'un SparkSession appelé spark est déjà disponible dans votre environnement de travail.

Cette activité fait partie du cours

Fondements de PySpark

Voir le cours

Instructions de l’exercice

  • Utilisez la méthode spark.table() avec l'argument "flights" pour créer un DataFrame contenant les valeurs de la table flights dans le .catalog. Enregistrez-le sous le nom flights.
  • Affichez l'en-tête de flights avec flights.show(). Vérifiez le résultat : la colonne air_time contient la durée du vol en minutes.
  • Mettez à jour flights pour inclure une nouvelle colonne appelée duration_hrs, qui contient la durée de chaque vol en heures (vous devrez diviser air_time par le nombre de minutes dans une heure).

Exercice interactif pratique

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

# Create the DataFrame flights
flights = spark.table(____)

# Show the head
____.____()

# Add duration_hrs
flights = flights.withColumn(____)
Modifier et exécuter le code