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, kursun bir parçasıdır
PySpark Temelleri
Egzersiz 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ı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Create the DataFrame flights
flights = spark.table(____)
# Show the head
____.____()
# Add duration_hrs
flights = flights.withColumn(____)