Urval med select
Sparks motsvarighet till SQL:s SELECT är metoden .select(). Den tar flera argument – ett för varje kolumn du vill välja. Argumenten kan antingen vara kolumnnamnet som en sträng eller ett kolumnobjekt (med syntaxen df.colName). När du skickar in ett kolumnobjekt kan du utföra operationer som addition eller subtraktion på kolumnen för att ändra dess data, precis som inuti .withColumn().
Skillnaden mellan .select() och .withColumn() är att .select() returnerar enbart de kolumner du anger, medan .withColumn() returnerar alla kolumner i DataFrame:en plus den du definierat. Det är ofta en god idé att ta bort kolumner du inte behöver i början av en operation, så att du inte bär med dig onödig data under bearbetningen. I det fallet använder du .select() i stället för .withColumn().
Kom ihåg att en SparkSession vid namn spark redan finns i din arbetsmiljö, tillsammans med Spark DataFrame:en flights.
Den här övningen är en del av kursen
Grunderna i PySpark
Övningsinstruktioner
- Välj kolumnerna
"tailnum","origin"och"dest"frånflightsgenom att skicka in kolumnnamnen som strängar. Spara resultatet somselected1. - Välj kolumnerna
"origin","dest"och"carrier"med syntaxendf.colNameoch filtrera sedan resultatet med hjälp av de två filter som redan är definierade (filterAochfilterB), så att bara flygningar från SEA till PDX behålls. Spara resultatet somselected2.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(____)