CommencerCommencez gratuitement

Sélection

La variante Spark de la méthode SELECT de SQL est la méthode .select(). Cette méthode accepte plusieurs arguments, un pour chaque colonne que vous souhaitez sélectionner. Ces arguments peuvent être soit le nom de la colonne sous forme de chaîne (un pour chaque colonne), soit un objet colonne (en utilisant la syntaxe df.colName). Lorsque vous transmettez un objet colonne, vous pouvez effectuer des opérations telles que l'addition ou la soustraction sur la colonne afin de modifier les données qu'elle contient, de manière similaire à ce qui se fait dans .withColumn().

La différence entre les méthodes .select() et .withColumn() réside dans le fait que .select() renvoie uniquement les colonnes que vous spécifiez, tandis que .withColumn() renvoie toutes les colonnes du DataFrame en plus de celle que vous avez définie. Il est souvent judicieux de supprimer les colonnes dont vous n'avez pas besoin au début d'une opération afin de ne pas avoir à manipuler des données supplémentaires pendant le traitement. Dans ce cas, il convient d'utiliser .select() et non .withColumn().

Veuillez noter qu'une session Spark intitulée spark est déjà présente dans votre espace de travail, ainsi que le Spark DataFrame flights.

Cet exercice fait partie du cours

<cours>Principes fondamentaux de PySpark</cours>
Voir le cours

Instructions de l’exercice

  • Veuillez sélectionner les colonnes "tailnum", "origin" et "dest" à partir de flights en transmettant les noms des colonnes sous forme de chaînes. Enregistrez cela sous selected1.
  • Veuillez sélectionner les colonnes "origin", "dest" et "carrier" à l'aide de la syntaxe df.colName, puis filtrer le résultat à l'aide des deux filtres déjà définis pour vous (filterA et filterB) afin de ne conserver que les vols de SEA à PDX. Enregistrez cela sous selected2.

Exercice interactif pratique

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

# Select the first set of columns
selected1 = flights.select("____", "____", "____")

# Select the second set of columns
temp = flights.select(____.____, ____.____, ____.____)

# Define first filter
filterA = flights.origin == "SEA"

# Define second filter
filterB = flights.dest == "PDX"

# Filter the data, first by filterA then by filterB
selected2 = temp.filter(____).filter(____)
Modifier et exécuter le code