Partager via


Interagir par programmation avec les fichiers d’espace de travail

Vous pouvez interagir avec les fichiers de l’espace de travail stockés dans Azure Databricks par programmation. Cela permet d’effectuer des tâches telles que :

  • Stockage de petits fichiers de données avec des notebooks et du code.
  • Écriture de fichiers journaux dans des répertoires synchronisés avec Git.
  • Importation de modules à l’aide de chemins relatifs.
  • Création ou modification d’un fichier de spécification d’environnement.
  • Écriture de la sortie à partir de notebooks.
  • Écriture de la sortie à partir de l’exécution de bibliothèques telles que Tensorboard.

Vous pouvez créer, modifier et supprimer par programmation des fichiers d’espace de travail dans Databricks Runtime 11.3 LTS et versions ultérieures.

Remarque

Pour désactiver l’écriture dans les fichiers d’espace de travail, définissez la variable d’environnement WSFS_ENABLE_WRITE_SUPPORT=false du cluster. Pour en savoir plus, voir Variables d’environnement.

Remarque

Dans Databricks Runtime 14.0 et versions ultérieures, le répertoire de travail actuel (CWD) par défaut pour le code exécuté localement est le répertoire contenant le notebook ou le script en cours d'exécution. Il s’agit d’un changement de comportement de Databricks Runtime 13.3 LTS et versions antérieures. Consultez Quel est le répertoire de travail actuel par défaut ?.

Lire les emplacements des fichiers

Utilisez des commandes de l’interpréteur de commandes pour lire les emplacements des fichiers, par exemple dans un référentiel ou dans le système de fichiers local.

Pour déterminer l’emplacement des fichiers, entrez les informations suivantes :

%sh ls
  • Les fichiers ne se trouvent pas dans un référentiel : la commande renvoie le système de fichiers /databricks/driver.
  • Les fichiers se trouvent dans un référentiel : la commande renvoie un référentiel virtualisé tel que /Workspace/Repos/name@domain.com/public_repo_2/repos_file_system.

Lire des fichiers d’espace de travail de données

Vous pouvez lire par programmation des fichiers de données de petite taille, tels que des fichiers .csv ou .json depuis le code à partir d’un notebook. L’exemple suivant utilise Pandas pour interroger les fichiers stockés dans un répertoire/data relatif à la racine du dépôt de projet :

import pandas as pd
df = pd.read_csv("./data/winequality-red.csv")
df

Vous pouvez utiliser Spark pour lire des fichiers de données. Vous devez fournir à Spark le chemin d’accès complet.

  • Les fichiers de l’espace de travail dans les dossiers Git utilisent le chemin d’accès file:/Workspace/Repos/<user-folder>/<repo-name>/path/to/file.
  • Les fichiers Workspace de votre répertoire personnel utilisent le chemin : file:/Workspace/Users/<user-folder>/path/to/file.

Vous pouvez copier le chemin d’accès absolu ou relatif d’un fichier à partir du menu déroulant à côté du fichier :

Menu déroulant des fichiers

L’exemple ci-dessous montre l’utilisation de {os.getcwd()} pour obtenir le chemin d’accès complet.

import os
spark.read.format("csv").load(f"file:{os.getcwd()}/my_data.csv")

Pour en savoir plus sur les fichiers sur Azure Databricks, consultez Utiliser des fichiers sur Azure Databricks.

Créer, mettre à jour et supprimer des fichiers et des répertoires par programmation

Dans Databricks Runtime 11.3 LTS et les versions ultérieures, vous pouvez manipuler directement les fichiers d’espace de travail dans Azure Databricks. Les exemples suivants utilisent des packages et des fonctionnalités Python standard pour créer et manipuler des fichiers et des répertoires.

# Create a new directory

os.mkdir('dir1')

# Create a new file and write to it

with open('dir1/new_file.txt', "w") as f:
    f.write("new content")

# Append to a file

with open('dir1/new_file.txt', "a") as f:
    f.write(" continued")

# Delete a file

os.remove('dir1/new_file.txt')

# Delete a directory

os.rmdir('dir1')