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

Pencere fonksiyonunu nokta gösteriminden SQL'e dönüştür

Bir tren tarifesine yeni bir sütun ekleyeceğiz; böylece her satırda trenin bir sonraki durağına varması için gereken dakika sayısı yer alacak.

  • df.columns == ['train_id', 'station', 'time'] olan bir dataframe'imiz df var.
  • df, schedule adlı bir SQL tablosu olarak kaydedildi.
  • Aşağıdaki pencere fonksiyonu sorgusu nokta gösterimini kullanır. Yeni bir dataframe dot_df üretir.
window = Window.partitionBy('train_id').orderBy('time')
dot_df = df.withColumn('diff_min', 
                    (unix_timestamp(lead('time', 1).over(window),'H:m') 
                     - unix_timestamp('time', 'H:m'))/60)

unix_timestamp fonksiyonunun, UNIX_TIMESTAMP SQL fonksiyonuna denk olduğuna dikkat et.

Lütfen örnek koddaki iskelet yapısına dikkat et. Yanıtını bu iskelete uygun biçimlendirmen, gönderdiğin yanıtın biçimlendirme nedeniyle hatalı şekilde reddedilmesini önleyecektir.

Bu egzersiz

Python ile Spark SQL'e Giriş

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • dot_df ile aynı sonucu elde edecek bir SQL sorgusu oluştur. Lütfen sorguyu iskelete göre biçimlendir (yani yer tutucu alt çizgileri _____ kullan).

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Create a SQL query to obtain an identical result to dot_df
query = """
SELECT *, 
(____(____(time, 1) ____ (____ BY train_id ____ BY time),'H:m') 
 - ____(time, 'H:m'))/60 AS diff_min 
FROM schedule 
"""
sql_df = spark.sql(query)
sql_df.show()
Kodu Düzenle ve Çalıştır