Selecteren
De Spark-variant van de SQL-SELECT is de methode .select(). Deze methode neemt meerdere argumenten — één voor elke kolom die je wilt selecteren. Deze argumenten kunnen ofwel de kolomnaam als string zijn (één per kolom) of een kolomobject (met de df.colName-syntaxis). Als je een kolomobject doorgeeft, kun je bewerkingen zoals optellen of aftrekken op de kolom uitvoeren om de gegevens erin te wijzigen, net zoals met .withColumn().
Het verschil tussen de methoden .select() en .withColumn() is dat .select() alleen de kolommen retourneert die je opgeeft, terwijl .withColumn() alle kolommen van de DataFrame teruggeeft plus de kolom die je hebt gedefinieerd. Het is vaak verstandig om aan het begin van een bewerking kolommen die je niet nodig hebt te laten vallen, zodat je geen extra gegevens meesleept tijdens het wranglen. In dat geval gebruik je .select() en niet .withColumn().
Onthoud: er is al een SparkSession met de naam spark in je workspace aanwezig, samen met de Spark DataFrame flights.
Deze oefening maakt deel uit van de cursus
Basis van PySpark
Oefeninstructies
- Selecteer de kolommen
"tailnum","origin"en"dest"uitflightsdoor de kolomnamen als strings door te geven. Sla dit op alsselected1. - Selecteer de kolommen
"origin","dest"en"carrier"met dedf.colName-syntaxis en filter het resultaat daarna met beide al voor je gedefinieerde filters (filterAenfilterB) zodat je alleen vluchten van SEA naar PDX overhoudt. Sla dit op alsselected2.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____)