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

Sıralama vs. düzenleme

Bu bölümde şimdiye kadar Spark'ın MLlib'inden bazı özellik dönüştürme fonksiyonlarını inceledin. sparklyr, Spark DataFrame API'sinden yararlanan bazı fonksiyonlara da erişim sağlar.

Bir tibble'ı dplyr ile sıralamanın yolu arrange() kullanmaktır. Tibbble'ları Spark'ın DataFrame API'siyle de sdf_sort() kullanarak sıralayabilirsin. Bu fonksiyon, üzerinde sıralama yapılacak sütunların karakter vektörünü alır ve şu anda yalnızca artan düzende sıralamayı destekler.

Örneğin, önce x sütununa göre, sonra (eşitlik durumunda) y sütununa, ardından z sütununa göre sıralamak için aşağıdaki kod dplyr ve Spark DataFrame yaklaşımlarını karşılaştırır.

a_tibble %>%
  arrange(x, y, z)
a_tibble %>%
  sdf_sort(c("x", "y", "z"))

Hangi yöntemin daha hızlı olduğunu görmek için hem arrange() hem de sdf_sort() kullanmayı dene. Kodunun ne kadar sürede çalıştığını, aynı adlı paketten gelen microbenchmark() içine sararak görebilirsin.

microbenchmark({
  # kodun
})

Kodunun hızını profilleme hakkında daha fazla bilgiyi Writing Efficient R Code kursunda öğrenebilirsin.

Bu egzersiz, kursun bir parçasıdır

R ile sparklyr kullanarak Spark’a Giriş

Kursa Göz Atın

Egzersiz talimatları

spark_conn olarak bir Spark bağlantısı senin için oluşturuldu. Spark'ta depolanan parça (track) metaverisine bağlı bir tibble track_metadata_tbl olarak önceden tanımlandı.

  • Aşağıdaki işlemleri gerçekleştirmenin ne kadar sürdüğünü karşılaştırmak için microbenchmark() kullan.
    • track_metadata_tbl satırlarını önce year, sonra artist_name, sonra release, ardından title sütunlarına göre sıralamak için arrange() kullan.
    • Sonucu topla.
    • Aynı şeyi bu kez arrange() yerine sdf_sort() kullanarak yap. Sütun adlarını tırnak içine almayı unutma.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# track_metadata_tbl has been pre-defined
track_metadata_tbl

# Compare timings of arrange() and sdf_sort()
microbenchmark(
  arranged = track_metadata_tbl %>%
    # Arrange by year, then artist_name, then release, then title
    ___ %>%
    # Collect the result
    ___,
  sorted = track_metadata_tbl %>%
    # Sort by year, then artist_name, then release, then title
    ___ %>%
    # Collect the result
    ___,
  times = 5
)
Kodu Düzenle ve Çalıştır