Création de 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 maintenant comment effectuer des opérations en colonnes. Dans Spark, vous pouvez le faire en utilisant la méthode .withColumn()
, qui prend deux arguments. Premièrement, une chaîne avec le nom de votre nouvelle colonne, et deuxièmement la nouvelle colonne elle-même.
La nouvelle colonne doit être un objet de la classe Column
. Pour en créer un, il suffit d'extraire une colonne de votre DataFrame à l'aide de df.colName
.
La mise à jour d'un DataFrame Spark est quelque peu différente du travail dans pandas
car le DataFrame Spark est immuable. 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 retourné en utilisant la méthode comme suit :
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 une.
Pour écraser une colonne existante, il suffit de passer le nom de la colonne comme premier argument !
Rappelez-vous qu'un site SparkSession
appelé spark
se trouve déjà dans votre espace de travail.
Cet exercice fait partie du cours
Introduction à PySpark
Instructions
- Utilisez la méthode
spark.table()
avec l'argument"flights"
pour créer un DataFrame contenant les valeurs du tableauflights
dans le tableau.catalog
. Sauvegardez-le sousflights
. - Montrez la tête de
flights
en utilisantflights.show()
. Vérifiez la sortie : la colonneair_time
contient la durée du vol en minutes. - Mettez à jour
flights
en y ajoutant une nouvelle colonne appeléeduration_hrs
, qui contient la durée de chaque vol en heures (vous devrez diviserair_time
par le nombre de minutes dans une heure).
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create the DataFrame flights
flights = spark.table(____)
# Show the head
____.____()
# Add duration_hrs
flights = flights.withColumn(____)