Aller au contenu principal

Interagir par programme avec les fichiers Workspace

Vous pouvez interagir par programmation avec les fichiers du workspace stockés dans Databricks. Ceci permet des tâches telles que :

  • Stocker de petits fichiers de données avec les Notebooks et le code.
  • Écriture de fichiers Logs 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 des notebooks.
  • Écriture des résultats à partir de l'exécution de bibliothèques telles que TensorBoard.

Vous pouvez, de façon programmatique, créer, modifier, renommer et supprimer des fichiers du Workspace dans Databricks Runtime 11.3 LTS et versions ultérieures. Cette fonctionnalité est prise en charge pour les Notebooks dans Databricks Runtime 16.2 et versions ultérieures, et les environnements Serverless 2 et supérieurs.

remarque

Pour désactiver l'écriture dans les fichiers du Workspace, définissez la variable d'environnement du cluster WSFS_ENABLE_WRITE_SUPPORT=false. Pour plus d'informations, consultez Variables d'environnement.

remarque

Dans Databricks Runtime 14.0 et versions ultérieures, le répertoire de travail actuel par default (CWD) 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 par rapport à Databricks Runtime 13.3 LTS et les versions antérieures. Consultez Qu'est-ce que le répertoire de travail actuel default ?.

Lire les emplacements des fichiers

Utilisez des commandes Shell pour lire l'emplacement des fichiers, par exemple, dans un référentiel ou dans le système de fichiers local.

Pour déterminer l'emplacement des fichiers, saisissez les informations suivantes :

Bash
%sh ls
  • Les fichiers ne sont pas dans un repository : 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.

Lisez les fichiers du Workspace.

Vous pouvez lire par programmation de petits fichiers de données tels que les fichiers .csv ou .json à partir du code de vos Notebooks. L'exemple suivant utilise Pandas pour interroger les fichiers stockés dans un répertoire /data par rapport à la racine du dépôt de projet :

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

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

  • Les fichiers du Workspace dans les dossiers Git utilisent le chemin 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 à un fichier à partir du menu déroulant à côté du fichier :

menu déroulant Fichier

L'exemple ci-dessous montre l'utilisation de {os.getcwd()} pour obtenir le chemin complet.

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

Dans les Workspaces où la racine et les montages DBFS sont désactivés, vous pouvez également utiliser dbfs:/Workspace pour accéder aux fichiers du Workspace avec les utilitaires Databricks. Ceci nécessite Databricks Runtime 13.3 LTS ou une version ultérieure. Consultez Désactiver l'accès à la racine et aux montages DBFS dans votre Workspace Databricks existant.

Pour en savoir plus sur les fichiers sur Databricks, consultez Travailler avec des fichiers sur Databricks.

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

Vous pouvez manipuler par programme les fichiers de Workspace dans Databricks, comme vous le feriez avec des fichiers dans n'importe quel système de fichiers standard.

remarque

Dans Databricks Runtime 16.2 et versions supérieures, et l'environnement Serverless 2 et versions supérieures, toutes les interactions programmatiques avec les fichiers sont également disponibles pour les Notebooks. Pour plus d'informations sur la conversion d'un fichier en Notebook, voir Convertir un fichier en Notebook.

Les exemples suivants utilisent des packages et fonctionnalités Python standard pour créer et manipuler des fichiers et des répertoires.

Python
import os

# 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')
Python
import shutil

# Copy a dashboard

shutil.copy("my-dashboard.lvdash.json", "my-dashboard-copy.lvdash.json")

# Move a query to a shared folder

shutil.move("test-query.dbquery","shared-queries/")