Laden von Daten aus einer Datei in ein DataFrame
Swipe um das Menü anzuzeigen
Das spark.read-Objekt ist der Einstiegspunkt zum Einlesen externer Daten in ein Spark DataFrame. Es unterstützt verschiedene Dateiformate, darunter CSV, JSON, Parquet und Delta, und ermöglicht die Definition, wie Spark die Dateien interpretieren soll.
In Abschnitt 2 haben Sie eine CSV-Datei in die Databricks-Umgebung hochgeladen. Nun erfahren Sie, wie Sie diese Datei aus dem Speicher "herausheben" und als DataFrame in den Arbeitsspeicher des Clusters laden können – ein erster Schritt in nahezu jeder Data-Engineering-Pipeline.
Die spark.read-Syntax
Um eine Datei zu laden, verwenden wir eine bestimmte Befehlskette. Die Grundstruktur sieht folgendermaßen aus:
df = spark.read.format("csv").option("header", "true").load("path/to/file")
- format: gibt Spark den Dateityp an (csv, json, parquet);
- option("header", "true"): weist Spark an, die erste Zeile der Datei als Spaltennamen zu verwenden;
- load: der spezifische Speicherort der Datei innerhalb von Databricks.
Schema-Erkennung
Standardmäßig geht Spark davon aus, dass jede Spalte in einer CSV eine Zeichenkette (Text) ist. Um die Daten nützlicher zu machen, fügen wir eine weitere Option hinzu: .option("inferSchema", "true"). Ist diese Option aktiviert, analysiert Spark die Daten und erkennt automatisch, welche Spalten Ganzzahlen, Dezimalzahlen oder Booleans sind. Dies erspart die manuelle Definition der Datentypen.
Auffinden des Dateipfads
Zum Einlesen einer Datei benötigen Sie deren Pfad. Im Tab Katalog oder Arbeitsbereich können Sie Ihre hochgeladene Datei finden, auf die drei Punkte (Ellipsen) daneben klicken und "Pfad kopieren" auswählen. In modernen Databricks-Versionen, wenn Sie die Datei wie in Kapitel 2.6 über die Data Ingestion UI hochgeladen haben, ist die Datei bereits als Tabelle gespeichert, die wir mit folgendem Befehl einlesen können:
df = spark.read.table("main.default.sample_sales_records")
Wenn Sie jedoch die Rohdatei direkt aus einem Volume einlesen, verwenden Sie den Dateipfad:
df = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/Volumes/main/default/my_volume/sales_data.csv")
Überprüfung des Ladevorgangs
Nach dem Ausführen des Ladebefehls empfiehlt es sich, die Daten zu überprüfen. Direkt nach dem Lese-Befehl sollte folgendes ausgeführt werden: display(df)
Dies bestätigt, dass die Daten korrekt in den Arbeitsspeicher des Clusters geladen wurden, die Kopfzeilen an der richtigen Stelle sind und die Datentypen korrekt erscheinen. Zu diesem Zeitpunkt befinden sich die Daten in einem temporären Objekt namens df und sind bereit für die weitere Verarbeitung.
1. Warum sollte die Einstellung .option("inferSchema", "true") beim Einlesen einer CSV verwendet werden?
2. Welcher Befehl wird verwendet, um eine bestehende Tabelle aus dem Katalog in ein Python DataFrame zu laden?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen