CommencerCommencer gratuitement

Sélection

La variante Spark de la méthode SQL's SELECT est la méthode .select(). Cette méthode prend en compte 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 (une pour chaque colonne), soit un objet colonne (en utilisant la syntaxe df.colName ). Lorsque vous passez un objet colonne, vous pouvez effectuer des opérations telles que l'addition ou la soustraction sur la colonne pour modifier les données qu'elle contient, tout comme à l'intérieur de .withColumn().

La différence entre les méthodes .select() et .withColumn() est que .select() renvoie uniquement les colonnes que vous avez spécifiées, 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 traîner de données supplémentaires pendant que vous manipulez les données. Dans ce cas, vous devez utiliser .select() et non .withColumn().

Rappelez-vous qu'une SparkSession appelée spark se trouve déjà dans votre espace de travail, ainsi que le DataFrame Spark flights.

Cet exercice fait partie du cours

Introduction à PySpark

Afficher le cours

Instructions

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

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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