Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Einführung in Spark DataFrames | Working With Data
Databricks-Grundlagen: Ein Leitfaden für Einsteiger

Einführung in Spark DataFrames

Swipe um das Menü anzuzeigen

Note
Definition

Ein Spark DataFrame ist eine verteilte Sammlung von Daten, die in benannten Spalten organisiert ist. Konzeptionell entspricht es einer Tabelle in einer relationalen Datenbank oder einer Tabellenkalkulation mit Spaltenüberschriften, wurde jedoch dafür entwickelt, über einen Cluster von Computern hinweg verarbeitet zu werden.

Mit dem Einstieg in Abschnitt 4 verlagert sich der Fokus von der Benutzeroberfläche auf die eigentlichen Daten. Für eine effektive Arbeit in Databricks ist das Verständnis des DataFrame unerlässlich. Dies ist die grundlegende Struktur, die von Apache Spark zur Speicherung und Bearbeitung von Daten verwendet wird. Unabhängig davon, ob Python, SQL oder Scala verwendet wird, erfolgt nahezu jede Interaktion mit Daten über ein DataFrame.

Es gibt auch eine PySpark-Schnittstelle, die später verwendet wird.

Apache Spark ist eine leistungsstarke Engine zur parallelen Verarbeitung großer Datenmengen über viele Computer hinweg. Sie ist in Scala geschrieben und übernimmt im Hintergrund die eigentliche Verarbeitung in Databricks.

PySpark ist lediglich die Python-Schnittstelle zu Spark. Sie ermöglicht das Schreiben von Python-Code, der im Hintergrund Spark-Anweisungen ausführt.

Wenn also in einem Databricks-Notebook beispielsweise df.filter() oder df.groupBy() geschrieben wird, handelt es sich um PySpark – aber Spark übernimmt die Verarbeitung von Millionen von Zeilen im Cluster.

Die Tabellenkalkulations-Analogie

Die einfachste Möglichkeit, sich ein DataFrame vorzustellen, ist ein einzelnes Blatt in einer Excel-Arbeitsmappe. Es enthält Datenzeilen und Spalten mit bestimmten Namen wie "Date", "Product_ID" oder "Price". Im Gegensatz zu einem Excel-Blatt, das auf dem eigenen Laptop gespeichert ist, ist ein Spark DataFrame jedoch verteilt. Das bedeutet: Wenn Ihr Datensatz zu groß für einen einzelnen Computer ist, teilt Spark das "Tabellenblatt" in kleinere Abschnitte auf und verteilt sie auf die verschiedenen Knoten Ihres Clusters.

Warum DataFrames statt Rohdateien verwenden?

Wenn Sie eine rohe CSV- oder JSON-Datei in ein DataFrame einlesen, führt Databricks zwei wichtige Schritte aus:

  • Schema-Erkennung: Die Daten werden analysiert, um zu erkennen, dass "Price" eine Zahl und "Name" ein Text ist;
  • Optimierung: Sobald sich die Daten in einem DataFrame befinden, kann Spark seinen "Optimizer" verwenden, um den schnellsten Weg zum Filtern oder Aggregieren der Daten zu finden. Er funktioniert wie ein Navigationssystem und sucht die effizienteste Route zum Ergebnis, damit keine Rechenleistung verschwendet wird.

Wichtige Eigenschaften

Es gibt drei Hauptmerkmale von DataFrames, die Sie sich merken sollten:

  • Unveränderlich: Sobald ein DataFrame erstellt wurde, kann es nicht mehr geändert werden. Wenn Sie die Daten "bereinigen" oder eine Spalte "entfernen", erstellt Spark tatsächlich ein neues DataFrame mit den vorgenommenen Änderungen. Dies gewährleistet die Datenintegrität;
  • Lazy Evaluation (verzögerte Auswertung): Spark führt keine Operationen aus, bis ein Ergebnis angefordert wird (wie z. B. eine Zählung oder Anzeige). Zunächst wird ein "Plan" erstellt, der nur bei Bedarf ausgeführt wird;
  • Vereinheitlichte API: Ein DataFrame kann mit Python erstellt und anschließend mit SQL abgefragt werden. Die zugrunde liegende Struktur bleibt gleich, was das "Mischen von Sprachen" ermöglicht, wie in Abschnitt 3 geübt.

DataFrames vs. Tabellen

In Databricks werden die Begriffe "Tabelle" und "DataFrame" oft synonym verwendet, es gibt jedoch einen kleinen Unterschied. Eine Tabelle ist ein permanentes Objekt, das im Katalog gespeichert wird. Ein DataFrame ist ein temporäres Objekt, das im Speicher des Clusters existiert, solange das Notebook ausgeführt wird.

Typischerweise sieht der Arbeitsablauf so aus:

  • Laden von Daten aus dem Katalog in ein DataFrame;
  • Bearbeiten des DataFrame mittels Code;
  • Speichern des Endergebnisses zurück in den Katalog als Tabelle.

1. Wie verarbeitet ein Spark DataFrame einen Datensatz, der zu groß für einen einzelnen Computer ist?

2. Was passiert, wenn Sie ein DataFrame in Spark "modifizieren", zum Beispiel eine Spalte entfernen?

question mark

Wie verarbeitet ein Spark DataFrame einen Datensatz, der zu groß für einen einzelnen Computer ist?

Wählen Sie die richtige Antwort aus

question mark

Was passiert, wenn Sie ein DataFrame in Spark "modifizieren", zum Beispiel eine Spalte entfernen?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 1

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 4. Kapitel 1
some-alt