Ler e gravar arquivos de texto

O text formato lê cada linha de um arquivo de texto como uma linha em um DataFrame com uma única value coluna do tipo StringType. Azure Databricks os usuários geralmente o usam para análise de logs, ingestão de dados brutos antes de processamento adicional ou qualquer fluxo de trabalho que exija acesso linha a linha ao conteúdo do arquivo. O Azure Databricks oferece suporte a ler e gravar arquivos de texto com o Apache Spark, incluindo compactação na gravação.

Pré-requisitos

Azure Databricks não requer configuração adicional para usar arquivos de texto. No entanto, para transmitir arquivos de texto, você precisa do Carregador Automático.

Opções

Use os métodos .option() e .options() de DataFrameReader e DataFrameWriter para configurar fontes de dados de texto. Para obter uma lista completa de opções com suporte, consulte DataFrameReader opções de texto e DataFrameWriter opções de texto.

Usage

Os exemplos a seguir usam o conjunto de dados do Wanderbricks para demonstrar a leitura e gravação de arquivos de texto usando a API do DataFrame do Spark e o SQL.

Ler arquivos de texto usando SQL

Para consultar arquivos de texto sem registrar uma tabela, use read_files. As permissões do Catálogo do Unity no local externo se aplicam automaticamente.

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

Ler e gravar arquivos de texto

O text formato requer um DataFrame com uma única StringType coluna. Os exemplos a seguir escrevem comentários de revisão do Wanderbricks em um arquivo de texto e, em seguida, os leem novamente.

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

Recursos adicionais

  • Ler e gravar arquivos CSV: se os dados de texto forem delimitados ou tabulares, o CSV fornecerá análise estruturada com inferência de esquema, suporte de cabeçalho e delimitadores configuráveis.