0Pricing
Scala for Backend Engineering & Functional Programming · Lektion

RDDs und DataFrames

Datenabstraktionen von Spark

RDDs und DataFrames ist eine kostenlose Scala for Backend Engineering & Functional Programming-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Scala for Backend Engineering & Functional Programming-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Scala for Backend Engineering & Functional Programming-Kurs umfasst insgesamt 4 Lektionen.

Was ist Apache Spark?

Apache Spark ist eine verteilte Engine zur Verarbeitung großer Datenmengen. Sie teilt Daten auf einen Cluster auf und führt Berechnungen parallel aus. Scala ist die native Sprache von Spark und bietet eine kompakte, typsichere API.

Das RDD

Das Resilient Distributed Dataset (RDD) ist die Abstraktion von Spark auf niedriger Ebene: eine unveränderliche, partitionierte Sammlung, die parallel verarbeitet und bei einem Knotenausfall anhand ihrer Abstammung neu erstellt werden kann.

SparkContext und SparkSession

Sie greifen über eine SparkSession auf Spark zu. Deren sparkContext erstellt RDDs; die Session selbst erstellt DataFrames und führt SQL aus.

import org.apache.spark.sql.SparkSession

val spark = SparkSession.builder()
  .appName("Demo")
  .master("local[*]")
  .getOrCreate()

Ein RDD erstellen

Erstellen Sie ein RDD, indem Sie eine lokale Sammlung parallelisieren oder eine Datei einlesen. Jede Partition wird von einer separaten Aufgabe verarbeitet.

val sc = spark.sparkContext
val numbers = sc.parallelize(Seq(1, 2, 3, 4, 5))
val lines   = sc.textFile("data.txt")

Der DataFrame

Ein DataFrame ist eine verteilte Tabelle mit benannten, typisierten Spalten – ähnlich wie ein RDD aus Zeilen plus Schema. Der Catalyst-Optimierer kann DataFrame-Abfragen planen und optimieren.

Einen DataFrame erstellen

Erstellen Sie DataFrames aus Sammlungen (mit toDF) oder durch das Einlesen strukturierter Dateien wie CSV, JSON oder Parquet.

import spark.implicits._

val df = Seq(("Alice", 30), ("Bob", 25)).toDF("name", "age")
val csv = spark.read.option("header", "true").csv("people.csv")

Einen DataFrame untersuchen

Verwenden Sie show, um Zeilen auszugeben, printSchema, um die Spaltentypen anzuzeigen, und count für die Anzahl der Zeilen.

df.printSchema()
df.show()
println(df.count())

Datasets und Typsicherheit

Ein Dataset ist ein typisierter DataFrame: Dataset[T], wobei T eine Case-Klasse ist. Es kombiniert die DataFrame-Optimierung mit Typprüfungen zur Compile-Zeit.

import spark.implicits._

case class Person(name: String, age: Int)
val ds = Seq(Person("Alice", 30)).toDS()

RDD vs. DataFrame vs. Dataset

Wählen Sie je nach Bedarf:

  • RDD – vollständige Kontrolle, kein Schema, kein Optimierer
  • DataFrame – Schema und Catalyst-Optimierung, nicht typisierte Zeilen
  • Dataset – Schema, Optimierung und Typsicherheit

Zwischen ihnen konvertieren

Konvertieren Sie einen DataFrame mit .rdd in ein RDD oder ein RDD aus Case-Klassen mit .toDF in einen DataFrame. Auch Datasets lassen sich mit .toDF in DataFrames umwandeln.

val rdd = df.rdd          // DataFrame -> RDD[Row]
val back = ds.toDF()      // Dataset -> DataFrame

Lokale Scala-Sammlung

Konzeptionell verhält sich ein DataFrame wie eine verteilte Scala-Sammlung. Hier sehen Sie zum besseren Verständnis das lokale, eigenständige Gegenstück.

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}"))
  }
}

Kurze Überprüfung

Welche Abstraktion bietet ein Schema, Catalyst-Optimierung und Typsicherheit zur Compile-Zeit?

Zusammenfassung

Sie haben die Datenabstraktionen von Spark kennengelernt:

  • SparkSession als Einstiegspunkt
  • RDD – verteilte Sammlung auf niedriger Ebene
  • DataFrame – verteilte Tabelle mit Schema
  • Dataset – typisierter DataFrame

Als Nächstes: Transformationen und Aktionen.

Häufig gestellte Fragen

Ist die Lektion „RDDs und DataFrames“ kostenlos?

Ja — der vollständige Text von „RDDs und DataFrames“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Scala for Backend Engineering & Functional Programming-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Scala for Backend Engineering & Functional Programming-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „RDDs und DataFrames“?

Datenabstraktionen von Spark Du übst Scala for Backend Engineering & Functional Programming mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Scala for Backend Engineering & Functional Programming zu starten?

Keine Vorkenntnisse erforderlich. Scala for Backend Engineering & Functional Programming auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „RDDs und DataFrames“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Scala for Backend Engineering & Functional Programming-Lektion Code schreiben und ausführen?

Ja. Jede Scala for Backend Engineering & Functional Programming-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. RDDs und DataFrames
  2. Transformationen und Actions
  3. Spark SQL
  4. Aggregationen
← Zurück zu Scala for Backend Engineering & Functional Programming