Tworzenie kolumn
W tym rozdziale dowiesz się, jak korzystać z metod klasy DataFrame w Sparku, aby wykonywać typowe operacje na danych.
Przyjrzyjmy się operacjom na kolumnach. W Sparku możesz je wykonywać metodą .withColumn(), która przyjmuje dwa argumenty. Pierwszy to ciąg znaków z nazwą nowej kolumny, a drugi – sama nowa kolumna.
Nowa kolumna musi być obiektem klasy Column. Możesz go łatwo utworzyć, wyodrębniając kolumnę z DataFrame za pomocą df.colName.
Aktualizowanie DataFrame w Sparku różni się nieco od pracy z pandas, ponieważ DataFrame w Sparku jest niemutowalny. Oznacza to, że nie można go modyfikować, a kolumny nie mogą być zmieniane w miejscu.
Dlatego wszystkie te metody zwracają nowy DataFrame. Aby nadpisać oryginalny DataFrame, musisz przypisać zwrócony DataFrame z powrotem do zmiennej, na przykład tak:
df = df.withColumn("newCol", df.oldCol + 1)
Powyższy kod tworzy DataFrame z tymi samymi kolumnami co df, powiększony o nową kolumnę newCol, w której każda wartość jest równa odpowiedniej wartości z oldCol powiększonej o jeden.
Aby nadpisać istniejącą kolumnę, wystarczy podać jej nazwę jako pierwszy argument!
Pamiętaj, że SparkSession o nazwie spark jest już dostępna w twoim obszarze roboczym.
To ćwiczenie jest częścią kursu
Podstawy PySpark
Instrukcje do ćwiczenia
- Użyj metody
spark.table()z argumentem"flights", aby utworzyć DataFrame zawierający wartości tabeliflightsz.catalog. Zapisz go jakoflights. - Wyświetl początek
flightsza pomocąflights.show(). Sprawdź wynik: kolumnaair_timezawiera czas trwania lotu w minutach. - Zaktualizuj
flights, dodając nową kolumnę o nazwieduration_hrs, która zawiera czas trwania każdego lotu w godzinach (podzielair_timeprzez liczbę minut w godzinie).
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Create the DataFrame flights
flights = spark.table(____)
# Show the head
____.____()
# Add duration_hrs
flights = flights.withColumn(____)