RDD dan DataFrames
Abstraksi data Spark.
RDD dan DataFrames adalah pelajaran Scala for Backend Engineering & Functional Programming gratis di CoddyKit. Ini adalah pelajaran 1 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 Apache Spark?
Apache Spark adalah mesin terdistribusi untuk pemrosesan data berskala besar. Spark membagi data ke seluruh klaster dan menjalankan perhitungan secara paralel. Scala adalah bahasa asli Spark, sehingga menyediakan API yang ringkas dan memahami tipe.
RDD
Resilient Distributed Dataset (RDD) adalah abstraksi tingkat rendah Spark: koleksi yang tidak dapat diubah dan dipartisi, yang dapat diproses secara paralel serta dibangun ulang dari garis keturunannya jika sebuah simpul gagal.
SparkContext dan SparkSession
Anda memasuki Spark melalui SparkSession. sparkContext-nya membuat RDD; sesi itu sendiri membuat DataFrame dan menjalankan SQL.
import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder()
.appName("Demo")
.master("local[*]")
.getOrCreate()Membuat RDD
Bangun RDD dengan memparalelkan koleksi lokal atau dengan membaca sebuah berkas. Setiap partisi diproses oleh tugas terpisah.
val sc = spark.sparkContext
val numbers = sc.parallelize(Seq(1, 2, 3, 4, 5))
val lines = sc.textFile("data.txt")DataFrame
DataFrame adalah tabel terdistribusi dengan kolom bernama dan bertipe—seperti RDD yang berisi baris ditambah skema. Pengoptimal Catalyst dapat merencanakan dan mengoptimalkan kueri DataFrame.
Membuat DataFrame
Buat DataFrame dari koleksi (dengan toDF) atau dengan membaca berkas terstruktur seperti CSV, JSON, atau Parquet.
import spark.implicits._
val df = Seq(("Alice", 30), ("Bob", 25)).toDF("name", "age")
val csv = spark.read.option("header", "true").csv("people.csv")Memeriksa DataFrame
Gunakan show untuk mencetak baris, printSchema untuk melihat tipe kolom, dan count untuk mengetahui jumlah baris.
df.printSchema()
df.show()
println(df.count())Dataset dan Keamanan Tipe
Dataset adalah DataFrame bertipe: Dataset[T], dengan T berupa case class. Dataset menggabungkan pengoptimalan DataFrame dengan pemeriksaan tipe saat kompilasi.
import spark.implicits._
case class Person(name: String, age: Int)
val ds = Seq(Person("Alice", 30)).toDS()RDD vs DataFrame vs Dataset
Pilih berdasarkan kebutuhan:
- RDD — kendali penuh, tanpa skema, tanpa pengoptimal
- DataFrame — skema + pengoptimalan Catalyst, baris tanpa tipe
- Dataset — skema + pengoptimalan + keamanan tipe
Mengonversi di Antaranya
Konversikan DataFrame menjadi RDD dengan .rdd, atau RDD berisi case class menjadi DataFrame dengan .toDF. Dataset juga dikonversikan menjadi DataFrame dengan .toDF.
val rdd = df.rdd // DataFrame -> RDD[Row]
val back = ds.toDF() // Dataset -> DataFrameKoleksi Scala Sederhana
Secara konseptual, DataFrame berperilaku seperti koleksi Scala, tetapi terdistribusi. Berikut analog lokal yang mandiri untuk membantu pemahaman.
object Main {
case class Person(name: String, age: Int)
def main(args: Array[String]): Unit = {
val people = Seq(Person("Alice", 30), Person("Bob", 25))
people.foreach(p => println(s"${p.name}: ${p.age}"))
}
}Pemeriksaan Singkat
Abstraksi mana yang menyediakan skema, pengoptimalan Catalyst, dan keamanan tipe saat kompilasi?
Ringkasan
Anda telah mengenal abstraksi data Spark:
SparkSessionsebagai titik masuk- RDD — koleksi terdistribusi tingkat rendah
- DataFrame — tabel terdistribusi dengan skema
- Dataset — DataFrame bertipe
Berikutnya: transformasi dan tindakan.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “RDD dan DataFrames” gratis?
Ya — teks lengkap “RDD dan DataFrames” 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 “RDD dan DataFrames”?
Abstraksi data Spark. 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 1 dari 4.
Berapa lama pelajaran “RDD dan DataFrames” 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.
Semua pelajaran dalam kursus ini
- RDD dan DataFrames
- Transformasi dan Action
- Spark SQL
- Agregasi