Aller au contenu principal

Lecture et écriture de fichiers texte

Le format text lit chaque ligne d'un fichier texte comme une ligne dans un DataFrame avec une seule colonne value de type StringType. Les utilisateurs de Databricks l'utilisent couramment pour l'analyse des Logs, l'ingestion de données brutes avant tout traitement ultérieur, ou tout workflow qui nécessite un accès ligne par ligne au contenu du fichier. Databricks prend en charge la lecture et l'écriture de fichiers texte avec Apache Spark, y compris la compression d'écriture.

Prérequis

Databricks ne nécessite pas de configuration supplémentaire pour utiliser les fichiers texte. Cependant, pour **stream** des fichiers texte, vous avez besoin de Auto Loader.

Options

Utilisez les méthodes .option() et .options() de DataFrameReader et DataFrameWriter pour configurer les sources de données textuelles. Pour obtenir la liste complète des options prises en charge, consultez les DataFrameReader options de texte et les DataFrameWriter options de texte.

Utilisation

Les exemples suivants utilisent le dataset Wanderbricks pour démontrer la lecture et l'écriture de fichiers texte en utilisant l'API Spark DataFrame et SQL.

Lire les fichiers texte à l'aide de SQL

Pour interroger des fichiers texte sans enregistrer de table, utilisez read_files. Les autorisations Unity Catalog sur l'emplacement externe s'appliquent automatiquement.

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

Lecture et écriture de fichiers texte

Le format text nécessite un DataFrame avec une seule colonne StringType. Les exemples suivants écrivent les commentaires de révision de Wanderbricks sous forme de fichier texte, puis les relisent.

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)

Ressources supplémentaires

  • Lisez et écrivez des fichiers CSV: si vos données textuelles sont délimitées ou tabulaires, le CSV fournit une analyse structurée avec inférence de schéma, prise en charge des en-têtes et délimiteurs configurables.