Freigeben über


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=falsefest. 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/driverzurück.
  • Dateien befinden sich in einem Repository: Der Befehl gibt ein virtualisiertes Repository wie /Workspace/Repos/name@domain.com/public_repo_2/repos_file_systemzurü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:

Datei-Dropdownmenü

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.