Udostępnij za pośrednictwem


Programowe interakcje z plikami obszaru roboczego

Możesz korzystać z programowego dostępu do plików obszarów roboczych przechowywanych w usłudze Azure Databricks. Umożliwia to wykonywanie zadań, takich jak:

  • Przechowywanie małych plików danych wraz z notesami i kodem.
  • Zapisywanie plików dziennika w katalogach zsynchronizowanych z usługą Git.
  • Importowanie modułów przy użyciu ścieżek względnych.
  • Tworzenie lub modyfikowanie pliku specyfikacji środowiska.
  • Zapisywanie danych wyjściowych z notesów.
  • Zapisywanie danych wyjściowych z egzekucji bibliotek, takich jak Tensorboard.

Możesz programowo tworzyć, edytować, zmieniać nazwy i usuwać pliki obszarów roboczych w środowisku Databricks Runtime 11.3 LTS i nowszych wersjach. Ta funkcja jest obsługiwana w przypadku notatników w środowisku Databricks Runtime 16.2 i nowszym oraz w środowisku bezserwerowym 2 i nowszym.

Notatka

Aby wyłączyć zapisywanie do plików obszaru roboczego, ustaw zmienną środowiskową klastra WSFS_ENABLE_WRITE_SUPPORT=false. Aby uzyskać więcej informacji, zobacz Zmienne środowiskowe.

Notatka

W środowisku Databricks Runtime 14.0 lub nowszym domyślnym bieżącym katalogiem roboczym (CWD) dla kodu wykonywanego lokalnie jest katalog, który zawiera notes lub skrypt uruchamiany. Jest to zmiana zachowania w wersji Databricks Runtime 13.3 LTS i wcześniejszych. Zobacz Jaki jest domyślny katalog roboczy?.

Odczytywanie lokalizacji plików

Użyj poleceń powłoki, aby odczytać lokalizacje plików, na przykład w repozytorium lub w lokalnym systemie plików.

Aby określić lokalizację plików, wprowadź następujące informacje:

%sh ls
  • Pliki nie są w repozytorium: Polecenie zwraca system plików /databricks/driver.
  • Pliki znajdują się w repozytorium: Polecenie zwraca zwirtualizowane repozytorium, takie jak /Workspace/Repos/name@domain.com/public_repo_2/repos_file_system.

Odczytywanie plików obszaru roboczego danych

Można programowo odczytywać małe pliki danych, takie jak pliki .csv lub .json z kodu w notesach. W poniższym przykładzie użyto biblioteki Pandas do wykonywania zapytań dotyczących plików przechowywanych w katalogu /data względem katalogu głównego repozytorium projektu:

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

Za pomocą platformy Spark można odczytywać pliki danych. Musisz podać Spark pełną ścieżkę dostępu.

  • Pliki obszarów roboczych w folderach Git używają ścieżki file:/Workspace/Repos/<user-folder>/<repo-name>/path/to/file.
  • Pliki obszarów roboczych w katalogu osobistym korzystają z ścieżki: file:/Workspace/Users/<user-folder>/path/to/file.

Możesz skopiować ścieżkę bezwzględną lub względną do pliku z menu rozwijanego obok pliku:

rozwijane menu pliku

W poniższym przykładzie pokazano użycie {os.getcwd()} w celu uzyskania pełnej ścieżki.

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

Aby dowiedzieć się więcej o plikach w usłudze Azure Databricks, zobacz Praca z plikami w usłudze Azure Databricks.

Programowe tworzenie, aktualizowanie i usuwanie plików i katalogów

W środowisku Databricks Runtime 11.3 LTS lub nowszym można bezpośrednio manipulować plikami obszarów roboczych w usłudze Azure Databricks. Notatniki są traktowane jako pliki obszaru roboczego w środowisku Databricks Runtime 16.2 lub nowszym oraz w środowisku bezserwerowym 2 lub nowszym. W poniższych przykładach używane są standardowe pakiety i funkcje języka Python do tworzenia plików i katalogów oraz manipulowania nimi.

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

Notatniki jako pliki obszaru roboczego

Notatka

Ta funkcja jest dostępna w środowisku Databricks Runtime 16.2 lub nowszym oraz środowisku bezserwerowym 2 i nowszym.

Wszystkie interakcje programowe z plikami są również dostępne dla notesów. Zasób w obszarze roboczym jest identyfikowany jako notes, jeśli:

  • ma rozszerzenie .ipynb,
  • lub zawiera ciąg Databricks notebook source w komentarzu w pierwszym wierszu i ma jedno z następujących rozszerzeń: .py, .r, .scala, .sql.

Wszelkie operacje zapisu lub zmiany nazwy notesu lub pliku, które zmieniają te warunki, również zmieniają typ notesu lub pliku. Jeśli na przykład masz plik myfile.txt, który ma # Databricks notebook source jako pierwszy wiersz, zmiana nazwy tego pliku na myfile.py przekształca go w notatnik.

Aby uzyskać informacje na temat konwertowania pliku na notes, zobacz Importowanie pliku i konwertowanie go na notes.