Programmgesteuerte Interaktion 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 Notizbüchern und Code.
- Schreiben von Protokolldateien in Verzeichnisse, die mit Git synchronisiert wurden.
- 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 programmgesteuert in Databricks Runtime 11.3 LTS und höher erstellen, bearbeiten, umbenennen und löschen. Diese Funktionalität wird für Notebooks in Databricks Runtime 16.2 und höher und der serverlose Umgebung 2 und höher unterstützt.
Hinweis
Um das Schreiben in Arbeitsbereichsdateien zu deaktivieren, legen Sie die Clusterumgebungsvariable WSFS_ENABLE_WRITE_SUPPORT=false
fest. Weitere Informationen finden Sie unter Umgebungsvariablen.
Hinweis
In Databricks Runtime 14.0 und höher ist das standardmäßige aktuelle Arbeitsverzeichnis (CWD) für code, der lokal ausgeführt wird, das Verzeichnis, das das Notizbuch oder skript enthält, das ausgeführt wird. Dies ist eine Änderung des Verhaltens von Databricks Runtime 13.3 LTS und darunter. 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 wie
/Workspace/Repos/name@domain.com/public_repo_2/repos_file_system
zurück.
Lesen von Daten aus Arbeitsbereichsdateien
Sie können programmgesteuert kleine Dateien wie .csv
oder .json
aus Code in Ihren Notizbüchern lesen. Im folgenden Beispiel werden Pandas verwendet, um Dateien abzufragen, die in einem /data
Verzeichnis relativ zum Stammverzeichnis des Projektrepo 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 aus dem Dropdownmenü neben der Datei kopieren:
Das folgende Beispiel zeigt die Verwendung von {os.getcwd()}
, um den vollständigen Pfad abzurufen.
import os
spark.read.format("csv").load(f"file:{os.getcwd()}/my_data.csv")
Weitere Informationen zu Dateien auf Azure Databricks finden Sie unter Arbeiten mit Dateien auf Azure Databricks.
Programmgesteuertes Erstellen, Aktualisieren und Löschen von Dateien und Verzeichnissen
In Databricks Runtime 11.3 LTS und höher können Sie Arbeitsbereichsdateien in Azure Databricks direkt bearbeiten. Notebooks werden in Databricks Runtime 16.2 und höher und in der serverlosen Umgebung 2 und höher als Arbeitsbereichsdateien behandelt. In den folgenden Beispielen werden standardmäßige Python-Pakete 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')
Notizbücher als Arbeitsbereichsdateien
Hinweis
Dieses Feature ist in Databricks Runtime 16.2 und höher und serverlose Umgebung 2 und höher verfügbar.
Alle programmgesteuerten Interaktionen mit Dateien sind auch für Notizbücher verfügbar. Eine Ressource im Arbeitsbereich wird als Notizbuch identifiziert, wenn:
- es gibt eine
.ipynb
-Erweiterung, - oder enthält die Zeichenfolge
Databricks notebook source
in einem Kommentar in der ersten Zeile und hat eine der folgenden Erweiterungen:.py
,.r
,.scala
,.sql
.
Jedes Schreiben oder Umbenennen eines Notizbuchs oder einer Datei, das diese Bedingungen ändert, ändert auch den Typ des Notizbuchs oder der Datei. Beispiel: Wenn Sie eine Datei myfile.txt
haben, die # Databricks notebook source
als erste Zeile aufweist, und diese Datei in myfile.py
umbenennen, wird sie in ein Notebook konvertiert.
Informationen zum Konvertieren einer Datei in ein Notizbuch finden Sie unter Importieren einer Datei und Konvertieren in ein Notizbuch.