Freigeben über


Programmgesteuertes Interagieren mit Arbeitsbereichsdateien

Sie können programmgesteuert mit Arbeitsbereichsdateien interagieren, die in Azure Databricks gespeichert sind. Dies ermöglicht Aufgaben wie:

  • Speichern kleiner Datendateien zusammen mit Notebooks und Code.
  • Schreiben von Protokolldateien in Verzeichnisse, die mit Git synchronisiert werden.
  • Importieren von Modulen mithilfe relativer Pfade.
  • Erstellen oder Ändern einer Umgebungsspezifikationsdatei.
  • Schreiben einer Ausgabe aus Notebooks.
  • Schreiben der Ausgabe aus der Ausführung von Bibliotheken wie Tensorboard.

Sie können Arbeitsbereichsdateien in Databricks Runtime 11.3 LTS und höher programmgesteuert erstellen, bearbeiten und löschen.

Hinweis

Legen Sie die Clusterumgebungsvariable WSFS_ENABLE_WRITE_SUPPORT=false fest, um das Schreiben in Arbeitsbereichsdateien zu deaktivieren. Weitere Informationen finden Sie unter Umgebungsvariablen.

Hinweis

In Databricks Runtime 14.0 und höher ist das aktuelle Standardarbeitsverzeichnis (CWD) für lokal ausgeführten Code das Verzeichnis, das das ausgeführte Notebook oder Skript enthält. Dies ist eine Verhaltensänderung von Databricks Runtime 13.3 LTS und niedriger. Weitere Informationen finden Sie unter Was ist das aktuelle Standardarbeitsverzeichnis?.

Lesen der Speicherorte von Dateien

Verwenden Sie Shellbefehle, um die Speicherorte von Dateien zu lesen, z. B. in einem Repository oder im lokalen Dateisystem.

Um den Speicherort der Dateien zu ermitteln, geben Sie Folgendes ein:

%sh ls
  • Dateien befinden sich nicht in einem Repository: Der Befehl gibt das Dateisystem /databricks/driver zurück.
  • Dateien befinden sich in einem Repository: Der Befehl gibt ein virtualisiertes Repository zurück, z. B. /Workspace/Repos/name@domain.com/public_repo_2/repos_file_system.

Lesen von Arbeitsbereichsdatendateien

Kleine Datendateien, wie etwa .csv- oder .json-Dateien, können programmgesteuert aus Code in Ihren Notebooks gelesen werden. Im folgenden Beispiel wird Pandas verwendet, um Dateien abzufragen, die in einem /data-Verzeichnis relativ zum Stammverzeichnis des Projektrepositorys gespeichert sind:

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

Sie können Spark verwenden, um Datendateien zu lesen. Sie müssen Spark den vollqualifizierten Pfad bereitstellen.

  • Arbeitsbereichsdateien in Git-Ordnern verwenden den Pfad file:/Workspace/Repos/<user-folder>/<repo-name>/path/to/file.
  • Arbeitsbereichsdateien in Ihrem persönlichen Verzeichnis verwenden den Pfad: file:/Workspace/Users/<user-folder>/path/to/file.

Sie können den absoluten oder relativen Pfad zu einer Datei über das Dropdownmenü neben der Datei kopieren:

Dropdownmenü für eine Datei

Das folgende Beispiel zeigt die Verwendung von {os.getcwd()} zum Abrufen des vollständigen Pfads.

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

Weitere Informationen zu Dateien in Azure Databricks finden Sie unter Arbeiten mit Dateien in Azure Databricks.

Programmgesteuertes Erstellen, Aktualisieren und Löschen von Dateien und Verzeichnissen

Wenn Sie Databricks Runtime 11.3 LTS und höher nutzen, können Sie Arbeitsbereichsdateien in Azure Databricks direkt bearbeiten. In den folgenden Beispielen werden Python-Standardpakete und -funktionen zum Erstellen und Bearbeiten von Dateien und Verzeichnissen verwendet.

# 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')