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
Instructions de l’exercice
- Utilisez la méthode
spark.table()avec l'argument"flights"pour créer un DataFrame contenant les valeurs de la tableflightsdans le.catalog. Enregistrez-le sous le nomflights. - Affichez l'en-tête de
flightsavecflights.show(). Vérifiez le résultat : la colonneair_timecontient la durée du vol en minutes. - Mettez à jour
flightspour inclure une nouvelle colonne appeléeduration_hrs, qui contient la durée de chaque vol en heures (vous devrez diviserair_timepar 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(____)