Spark SQL
Verileri sorgulayın
Spark SQL, CoddyKit'te ücretsiz bir Scala for Backend Engineering & Functional Programming dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Scala for Backend Engineering & Functional Programming öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Scala for Backend Engineering & Functional Programming kursu toplamda 4 dersten oluşur.
Spark SQL Nedir?
Spark SQL, dağıtılmış verileri standart SQL veya tür denetimli bir DataFrame API'siyle sorgulamanızı sağlar. Her ikisi de aynı Catalyst iyileştiricisinden geçtiği için aynı performansı gösterir.
Geçici Görünümler
Bir DataFrame üzerinde SQL çalıştırmak için onu görünüm olarak kaydedin. createOrReplaceTempView, geçerli oturum boyunca görünümün adıyla sorgulanabilmesini sağlar.
val df = Seq(("Alice", 30), ("Bob", 25)).toDF("name", "age")
df.createOrReplaceTempView("people")SQL Sorgusu Çalıştırma
Bir SQL dizesiyle spark.sql kullanın. Bu, daha sonra dönüştürebileceğiniz veya görüntüleyebileceğiniz yeni bir DataFrame döndürür.
val adults = spark.sql("SELECT name FROM people WHERE age >= 18")
adults.show()DataFrame DSL'i
Aynı sorgunun tür denetimli DSL'deki karşılığı. functions nesnesi col, karşılaştırmalar ve birçok yerleşik ifade sağlar.
import org.apache.spark.sql.functions._
val adults = df.filter(col("age") >= 18).select("name")Seçme ve Takma Ad Verme
Sütunları select ile seçin ve as / alias ile yeniden adlandırın. Hesaplanan sütunlar, col üzerinde kullanılan ifadelerle oluşturulur.
import org.apache.spark.sql.functions._
df.select(
col("name"),
(col("age") + 1).as("age_next_year")
).show()Satırları Filtreleme
where ve filter eş anlamlıdır. Koşulları && ve || ile birleştirin; eksik veriler için isNull / isNotNull kullanın.
import org.apache.spark.sql.functions._
df.where(col("age") > 20 && col("name").isNotNull).show()Sıralama ve Sınırlandırma
orderBy sıralama yapar (azalan sıralama için desc kullanın), limit ise döndürülen satır sayısını sınırlar.
import org.apache.spark.sql.functions._
df.orderBy(col("age").desc).limit(5).show()Birleştirmeler
İki DataFrame'i bir anahtar üzerinden join ile birleştirin. "inner", "left" veya "outer" gibi bir birleştirme türü belirtin.
val joined = orders.join(customers, Seq("customer_id"), "inner")
joined.show()Yerleşik İşlevler
functions paketi yüzlerce yardımcı sunar: upper, concat, when, round, tarih işlevleri ve daha fazlası.
import org.apache.spark.sql.functions._
df.withColumn("name_upper", upper(col("name")))
.withColumn("category", when(col("age") >= 30, "senior").otherwise("junior"))
.show()Tabloları Okuma ve Yazma
Spark SQL birçok biçimi okuyup yazabilir. Parquet sütun tabanlı ve verimlidir; saveAsTable verileri meta veri deposunda kalıcı hâle getirir.
val data = spark.read.parquet("input.parquet")
data.write.mode("overwrite").parquet("output.parquet")Basit Scala SQL Benzeri Sorgu
Kendi başına çalışan bir benzeri: bellekteki bir koleksiyonu koleksiyon yöntemleriyle sorgulamak, Spark SQL'deki SELECT/WHERE işlemini yansıtır.
object Main {
case class Person(name: String, age: Int)
def main(args: Array[String]): Unit = {
val people = Seq(Person("Alice", 30), Person("Bob", 25))
val adults = people.filter(_.age >= 18).map(_.name)
println(adults.mkString(", "))
}
}Hızlı Kontrol
spark.sql("SELECT ...") ile sorgulamadan önce bir DataFrame üzerinde ne yapmanız gerekir?
Özet
Spark SQL ile veri sorguladınız:
createOrReplaceTempViewile görünümler kaydetmespark.sqlveya DataFrame DSL'i aracılığıyla SQL çalıştırmaselect,where,orderBy,join- yerleşik işlevler ve Parquet G/Ç işlemleri
Sıradaki konu: toplulaştırmalar.
Sıkça Sorulan Sorular
“Spark SQL” dersi ücretsiz mi?
Evet — “Spark SQL” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Scala for Backend Engineering & Functional Programming kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Scala for Backend Engineering & Functional Programming kursu toplamda 4 dersten oluşur.
“Spark SQL” dersinde ne öğreneceğim?
Verileri sorgulayın Scala for Backend Engineering & Functional Programming ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Scala for Backend Engineering & Functional Programming öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Scala for Backend Engineering & Functional Programming, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Spark SQL” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Scala for Backend Engineering & Functional Programming dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Scala for Backend Engineering & Functional Programming dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.