Lesen und Schreiben von Textdateien

Das text Format liest jede Zeile einer Textdatei als Zeile in einem DataFrame mit einer einzelnen value Spalte vom Typ StringType. Azure Databricks Benutzer sie häufig für die Protokollanalyse, das Aufnehmen von Rohdaten vor der weiteren Verarbeitung oder für einen Workflow verwenden, der zeilenbasierten Zugriff auf Dateiinhalte erfordert. Azure Databricks unterstützt das Lesen und Schreiben von Textdateien mit Apache Spark, einschließlich der Schreibkomprimierung.

Voraussetzungen

Azure Databricks erfordert keine zusätzliche Konfiguration für die Verwendung von Textdateien. Zum Streamen von Textdateien benötigen Sie jedoch das automatische Laden.

Options

Verwenden Sie die Methoden .option() und .options() von DataFrameReader und DataFrameWriter, um Textdatenquellen zu konfigurieren. Eine vollständige Liste der unterstützten Optionen finden Sie unter DataFrameReader Textoptionen und DataFrameWriter Textoptionen.

Usage

In den folgenden Beispielen wird das Wanderbricks-Dataset verwendet, um das Lesen und Schreiben von Textdateien mithilfe der Spark DataFrame-API und SQL zu veranschaulichen.

Lesen von Textdateien mit SQL

Wenn Sie Textdateien abfragen möchten, ohne eine Tabelle zu registrieren, verwenden Sie read_files. Unity-Katalogberechtigungen für den externen Speicherort werden automatisch angewendet.

SELECT * FROM read_files(
  '/Volumes/<catalog>/<schema>/<volume>/review_comments',
  format => 'text'
)

Lesen und Schreiben von Textdateien

Für das text Format ist ein DataFrame mit einer einzelnen StringType Spalte erforderlich. Die folgenden Beispiele schreiben Rezensionskommentare zu Wanderbricks in eine Textdatei und lesen sie dann wieder ein.

Python

from pyspark.sql.functions import col

# Write wanderbricks review comments as a text file
df = spark.read.table("samples.wanderbricks.reviews").select(col("comment").alias("value"))
df.write.format("text").save("/Volumes/<catalog>/<schema>/<volume>/review_comments")

# Read a text file — each line becomes a row in the "value" column
df = spark.read.format("text").load("/Volumes/<catalog>/<schema>/<volume>/review_comments")
display(df)

Scala

import org.apache.spark.sql.functions.col

// Write wanderbricks review comments as a text file
val df = spark.read.table("samples.wanderbricks.reviews").select(col("comment").alias("value"))
df.write.format("text").save("/Volumes/<catalog>/<schema>/<volume>/review_comments")

// Read a text file — each line becomes a row in the "value" column
val text = spark.read.format("text").load("/Volumes/<catalog>/<schema>/<volume>/review_comments")
text.show()

Weitere Ressourcen

  • Lesen und Schreiben von CSV-Dateien: Wenn Ihre Textdaten durch Trennzeichen oder Tabellarisch getrennt sind, bietet CSV eine strukturierte Analyse mit Schemaeinschluss, Headerunterstützung und konfigurierbaren Trennzeichen.