CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Utilisez la méthode spark.table() avec l'argument "flights" pour créer un DataFrame contenant les valeurs du tableau flights dans le tableau .catalog. Sauvegardez-le sous flights.
  • Montrez la tête de flights en utilisant flights.show(). Vérifiez la sortie : la colonne air_time contient la durée du vol en minutes.
  • Mettez à jour flights en y ajoutant 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 cet exemple de code.

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

# Show the head
____.____()

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