Sütun oluşturma
Bu bölümde, yaygın veri işlemlerini gerçekleştirmek için Spark'ın DataFrame sınıfında tanımlı yöntemleri nasıl kullanacağını öğreneceksin.
Hadi sütun bazlı işlemler yapmaya bakalım. Spark'ta bunu iki argüman alan .withColumn() yöntemiyle yapabilirsin. İlk argüman yeni sütununun adı olan bir string, ikinci argüman ise bizzat yeni sütunun kendisidir.
Yeni sütun mutlaka Column sınıfından bir nesne olmalıdır. Bunu oluşturmak, DataFrame'inden df.colName yazarak bir sütun çıkarmak kadar kolaydır.
Bir Spark DataFrame'ini güncellemek pandas ile çalışmaktan biraz farklıdır çünkü Spark DataFrame'i değiştirilemezdir (immutable). Yani doğrudan değiştirilemez ve sütunlar yerinde güncellenemez.
Bu nedenle, bu yöntemlerin hepsi yeni bir DataFrame döndürür. Orijinal DataFrame'in üzerine yazmak istersen, dönen DataFrame'i aşağıdaki gibi yeniden ataman gerekir:
df = df.withColumn("newCol", df.oldCol + 1)
Yukarıdaki kod, df ile aynı sütunlara sahip, ayrıca her bir değeri oldCol'daki karşılık gelen değerin bir fazlası olan newCol adlı yeni bir sütun içeren bir DataFrame oluşturur.
Mevcut bir sütunun üzerine yazmak için, ilk argüman olarak o sütunun adını geçirmen yeterli!
Unutma, çalışma alanında spark adlı bir SparkSession zaten mevcut.
Bu egzersiz
PySpark Temelleri
kursunun bir parçasıdırEgzersiz talimatları
.catalogiçindekiflightstablosunun değerlerini içeren bir DataFrame oluşturmak içinspark.table()yöntemini"flights"argümanıyla kullan. Bunuflightsolarak kaydet.flights.show()kullanarakflights'ın başını göster. Çıktıyı kontrol et:air_timesütunu uçuş süresini dakika cinsinden içerir.flights'ı, her uçuşun süresini saat cinsinden içerenduration_hrsadlı yeni bir sütun ekleyecek şekilde güncelle (saatteki dakika sayısına bölmen gerekecek).
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Create the DataFrame flights
flights = spark.table(____)
# Show the head
____.____()
# Add duration_hrs
flights = flights.withColumn(____)