Wybieranie kolumn
Odpowiednikiem SQL-owego SELECT w Sparku jest metoda .select(). Przyjmuje ona wiele argumentów – po jednym dla każdej kolumny, którą chcesz wybrać. Argumenty mogą być podane jako nazwy kolumn w postaci ciągów znaków albo jako obiekty kolumn (z użyciem składni df.colName). Gdy przekazujesz obiekt kolumny, możesz wykonywać na niej operacje, takie jak dodawanie czy odejmowanie, zmieniając zawarte w niej dane – podobnie jak wewnątrz .withColumn().
Różnica między .select() a .withColumn() polega na tym, że .select() zwraca tylko wskazane kolumny, natomiast .withColumn() zwraca wszystkie kolumny DataFrame wraz z nowo zdefiniowaną. Zazwyczaj warto usunąć zbędne kolumny na początku pracy, żeby nie operować na nadmiarowych danych. W takim przypadku użyj .select() zamiast .withColumn().
Pamiętaj, że w twoim środowisku pracy dostępna jest już sesja SparkSession o nazwie spark oraz Spark DataFrame flights.
To ćwiczenie jest częścią kursu
Podstawy PySpark
Instrukcje do ćwiczenia
- Wybierz kolumny
"tailnum","origin"i"dest"z DataFrameflights, przekazując nazwy kolumn jako ciągi znaków. Zapisz wynik jakoselected1. - Wybierz kolumny
"origin","dest"i"carrier"za pomocą składnidf.colName, a następnie przefiltruj wynik, używając obu już zdefiniowanych filtrów (filterAifilterB), tak aby zachować tylko loty z SEA do PDX. Zapisz wynik jakoselected2.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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(____)