Spark SQL
Kuerikan data.
Spark SQL adalah pelajaran Scala for Backend Engineering & Functional Programming gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Scala for Backend Engineering & Functional Programming, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Scala for Backend Engineering & Functional Programming mencakup 4 pelajaran total.
Apa Itu Spark SQL?
Spark SQL memungkinkan Anda melakukan kueri terhadap data terdistribusi menggunakan SQL standar atau API DataFrame bertipe. Keduanya melalui pengoptimal Catalyst yang sama, sehingga kinerjanya identik.
Tampilan Sementara
Untuk menjalankan SQL terhadap sebuah DataFrame, daftarkan sebagai tampilan. createOrReplaceTempView membuatnya dapat dikuerikan berdasarkan nama selama sesi saat ini.
val df = Seq(("Alice", 30), ("Bob", 25)).toDF("name", "age")
df.createOrReplaceTempView("people")Menjalankan Kueri SQL
Gunakan spark.sql dengan string SQL. Fungsi ini mengembalikan DataFrame baru yang dapat Anda transformasikan atau tampilkan lebih lanjut.
val adults = spark.sql("SELECT name FROM people WHERE age >= 18")
adults.show()DSL DataFrame
Kueri yang sama dalam DSL bertipe. Objek functions menyediakan col, perbandingan, dan banyak ekspresi bawaan.
import org.apache.spark.sql.functions._
val adults = df.filter(col("age") >= 18).select("name")Memilih dan Memberi Alias
Proyeksikan kolom dengan select dan ganti namanya dengan as / alias. Kolom hasil perhitungan menggunakan ekspresi atas col.
import org.apache.spark.sql.functions._
df.select(
col("name"),
(col("age") + 1).as("age_next_year")
).show()Memfilter Baris
where dan filter adalah sinonim. Gabungkan kondisi dengan && dan ||, lalu gunakan isNull / isNotNull untuk data yang hilang.
import org.apache.spark.sql.functions._
df.where(col("age") > 20 && col("name").isNotNull).show()Mengurutkan dan Membatasi
orderBy mengurutkan (gunakan desc untuk urutan menurun), sedangkan limit membatasi jumlah baris yang dikembalikan.
import org.apache.spark.sql.functions._
df.orderBy(col("age").desc).limit(5).show()Penggabungan
Gabungkan dua DataFrames berdasarkan kunci dengan join. Tentukan jenis penggabungan, seperti "inner", "left", atau "outer".
val joined = orders.join(customers, Seq("customer_id"), "inner")
joined.show()Fungsi Bawaan
Paket functions menyediakan ratusan pembantu: upper, concat, when, round, fungsi tanggal, dan banyak lagi.
import org.apache.spark.sql.functions._
df.withColumn("name_upper", upper(col("name")))
.withColumn("category", when(col("age") >= 30, "senior").otherwise("junior"))
.show()Membaca dan Menulis Tabel
Spark SQL membaca dan menulis banyak format. Parquet berbentuk kolom dan efisien; saveAsTable menyimpannya ke penyimpanan metadata.
val data = spark.read.parquet("input.parquet")
data.write.mode("overwrite").parquet("output.parquet")Kueri Mirip SQL dengan Scala Sederhana
Analogi mandiri: menguerikan koleksi dalam memori dengan metode koleksi menyerupai SELECT/WHERE Spark SQL.
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(", "))
}
}Pemeriksaan Singkat
Apa yang harus Anda lakukan terhadap sebuah DataFrame sebelum menguerikannya dengan spark.sql("SELECT ...")?
Rangkuman
Anda telah menguerikan data dengan Spark SQL:
- mendaftarkan tampilan dengan
createOrReplaceTempView - menjalankan SQL melalui
spark.sqlatau DSL DataFrame select,where,orderBy,join- fungsi bawaan dan I/O Parquet
Berikutnya: agregasi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Spark SQL” gratis?
Ya — teks lengkap “Spark SQL” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Scala for Backend Engineering & Functional Programming, upgrade ke CoddyKit PRO. Kursus Scala for Backend Engineering & Functional Programming mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Spark SQL”?
Kuerikan data. Kamu berlatih Scala for Backend Engineering & Functional Programming dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Scala for Backend Engineering & Functional Programming?
Tidak diperlukan pengalaman sebelumnya. Scala for Backend Engineering & Functional Programming di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Spark SQL” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Scala for Backend Engineering & Functional Programming ini?
Ya. Setiap pelajaran Scala for Backend Engineering & Functional Programming menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.