Selezione
La variante Spark del SELECT di SQL è il metodo .select(). Questo metodo accetta più argomenti, uno per ogni colonna che vuoi selezionare. Gli argomenti possono essere il nome della colonna come stringa (uno per ciascuna colonna) oppure un oggetto colonna (usando la sintassi df.colName). Quando passi un oggetto colonna, puoi eseguire operazioni come addizioni o sottrazioni sulla colonna per modificare i dati in essa contenuti, in modo simile a quanto fai con .withColumn().
La differenza tra i metodi .select() e .withColumn() è che .select() restituisce solo le colonne che specifichi, mentre .withColumn() restituisce tutte le colonne del DataFrame oltre a quella che hai definito. Spesso conviene eliminare all’inizio le colonne che non ti servono, così da non portarti dietro dati extra mentre fai data wrangling. In questo caso useresti .select() e non .withColumn().
Ricorda: una SparkSession chiamata spark è già disponibile nel tuo workspace, insieme al DataFrame di Spark flights.
Questo esercizio fa parte del corso
Fondamenti di PySpark
Istruzioni dell'esercizio
- Seleziona le colonne
"tailnum","origin"e"dest"daflightspassando i nomi delle colonne come stringhe. Salva il risultato inselected1. - Seleziona le colonne
"origin","dest"e"carrier"usando la sintassidf.colNamee poi filtra il risultato applicando entrambi i filtri già definiti per te (filterAefilterB) per mantenere solo i voli da SEA a PDX. Salva il risultato inselected2.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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(____)