0Pricing
Scala for Backend Engineering & Functional Programming · Pelajaran

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 -> DataFrame

Koleksi 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:

  • SparkSession sebagai 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

  1. RDD dan DataFrames
  2. Transformasi dan Action
  3. Spark SQL
  4. Agregasi
← Kembali ke Scala for Backend Engineering & Functional Programming