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

Gelişmiş Seçim II: SQL

Daha önce bahsettiğimiz gibi, dplyr arayüzünü kullandığında sparklyr kodunu Spark’a göndermeden önce SQL’e çevirir. Çoğu zaman istediğin de budur. Ancak aynı işi ham SQL yazarak da yapabilirsin. Çoğu durumda bu pek akıllıca değildir; çünkü kodu yazmak ve hata ayıklamak daha zordur. Yine de, kodunun taşınabilir olmasını — yani R dışında da kullanılabilmesini — istiyorsan işe yarayabilir. Örneğin, oldukça yaygın bir iş akışı, veri işleme üzerinde denemeler yapmak için sparklyr kullanıp, üretim ortamında ham SQL’e geçmektir. En baştan ham SQL yazarak, üretime geçtiğinde sorgularını kopyala-yapıştır yapabilirsin.

SQL sorguları string olarak yazılır ve DBI paketindeki dbGetQuery() fonksiyonuna gönderilir. Örüntü aşağıdaki gibidir.

query <- "SELECT col1, col2 FROM some_data WHERE some_condition"
a_data.frame <- dbGetQuery(spark_conn, query)

dplyr ile yazdığın koddan farklı olarak, dbGetQuery() sorguyu her zaman çalıştırır ve sonuçları hemen R’a döndürür. Veriyi geri döndürmeyi geciktirmek istersen, sorguyu çalıştırmak için dbSendQuery() ve sonuçları almak için dbFetch() kullanabilirsin. Bu daha ileri bir kullanımdır ve burada ele alınmamıştır. Ayrıca, DBI fonksiyonlarının tibble yerine data.frame döndürdüğünü unutma; çünkü DBI daha düşük seviyeli bir pakettir.

SQL kodu yazmayı daha fazla öğrenmek istersen, Introduction to SQL kursunu al.

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

R ile sparklyr kullanarak Spark’a Giriş

Kursa Göz Atın

Egzersiz talimatları

Senin için spark_conn olarak bir Spark bağlantısı oluşturuldu. Spark’ta saklanan parça meta verilerine bağlı bir tibble track_metadata_tbl olarak önceden tanımlandı ve SQL sorgularında track_metadata olarak erişilebilir.

  • Sorguyu tamamlayarak track_metadata Spark veri çerçevesindeki tüm sütunları seç; koşullar: year 1935’ten küçük ve duration 300 saniyeden büyük olsun.
  • Sorguyu çalıştırmak için dbGetQuery() çağır, sonuçları results değişkenine ata ve çıktıyı görüntüle.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Write SQL query
query <- "SELECT ___ FROM ___ WHERE ___ AND ___"

# Run the query
(results <- ___(___, ___))
Kodu Düzenle ve Çalıştır