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 tableauflightsdans le tableau.catalog. Sauvegardez-le sousflights. - Montrez la tête de
flightsen utilisantflights.show(). Vérifiez la sortie : la colonneair_timecontient la durée du vol en minutes. - Mettez à jour
flightsen y ajoutant 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 cet exemple de code.
# Create the DataFrame flights
flights = spark.table(____)
# Show the head
____.____()
# Add duration_hrs
flights = flights.withColumn(____)