BaşlayınÜcretsiz Başlayın

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ır
Kursu Görüntüle

Egzersiz talimatları

  • .catalog içindeki flights tablosunun değerlerini içeren bir DataFrame oluşturmak için spark.table() yöntemini "flights" argümanıyla kullan. Bunu flights olarak kaydet.
  • flights.show() kullanarak flights'ın başını göster. Çıktıyı kontrol et: air_time sütunu uçuş süresini dakika cinsinden içerir.
  • flights'ı, her uçuşun süresini saat cinsinden içeren duration_hrs adlı 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(____)
Kodu Düzenle ve Çalıştır