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