Tekstbestanden lezen en schrijven

De text indeling leest elke regel van een tekstbestand als een rij in een DataFrame met één value kolom van het type StringType. Azure Databricks gebruikers deze vaak gebruiken voor het parseren van logboeken, het opnemen van onbewerkte gegevens voordat ze verder worden verwerkt of een werkstroom waarvoor line-by-line toegang tot bestandsinhoud is vereist. Azure Databricks ondersteunt het lezen en schrijven van tekstbestanden met Apache Spark, waaronder schrijfcompressie.

Prerequisites

Azure Databricks vereist geen aanvullende configuratie voor het gebruik van tekstbestanden. Als u echter tekstbestanden wilt streamen, hebt u automatisch laden nodig.

Options

Gebruik de .option() en .options() methoden van DataFrameReader en DataFrameWriter om tekstgegevensbronnen te configureren. Zie DataFrameReader tekstopties en DataFrameWriter tekstopties voor een volledige lijst met ondersteunde opties.

Usage

In de volgende voorbeelden wordt de Wanderbricks-gegevensset gebruikt om het lezen en schrijven van tekstbestanden te demonstreren met behulp van de Spark DataFrame-API en SQL.

Tekstbestanden lezen met SQL

Als u tekstbestanden wilt opvragen zonder een tabel te registreren, gebruikt u read_files. Unity Catalog-machtigingen op de externe locatie worden automatisch toegepast.

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

Tekstbestanden lezen en schrijven

Voor de text indeling is een DataFrame met één StringType kolom vereist. De volgende voorbeelden schrijven Wanderbricks-beoordelingsopmerkingen naar een tekstbestand en lezen deze vervolgens weer in.

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()

Aanvullende bronnen

  • CSV-bestanden lezen en schrijven: als uw tekstgegevens zijn gescheiden of tabellair zijn, biedt CSV gestructureerde parsering met schemadeductie, ondersteuning voor kopteksten en configureerbare scheidingstekens.