Программное взаимодействие с файлами рабочей области
Вы можете взаимодействовать с файлами рабочей области, хранящимися в Azure Databricks программным способом. Это позволяет выполнять такие задачи, как:
- Хранение небольших файлов данных вместе с записными книжками и кодом.
- Запись файлов журналов в каталоги, синхронизированные с Git.
- Импорт модулей с помощью относительных путей.
- Создание или изменение файла спецификации среды.
- Запись выходных данных из записных книжек.
- Запись результатов выполнения таких библиотек, как Tensorboard.
Вы можете программно создавать, изменять, переименовать и удалять файлы рабочей области в Databricks Runtime 11.3 LTS и более поздних версиях. Эта функция поддерживается для записных книжек в Databricks Runtime 16.2 и выше, а также в бессерверной архитектуре версии 2 и выше.
Заметка
Чтобы отключить запись в файлы рабочей области, задайте переменную среды кластера WSFS_ENABLE_WRITE_SUPPORT=false
. Дополнительные сведения см. в переменных среды .
Заметка
В Databricks Runtime 14.0 и выше текущий рабочий каталог по умолчанию (CWD) для кода, выполняемого локально, — это каталог, содержащий записную книжку или скрипт, выполняемый. Это изменение поведения в Databricks Runtime 13.3 LTS и ниже. См. Что такое текущий рабочий каталог по умолчанию?.
Чтение расположений файлов
Используйте команды оболочки для чтения расположений файлов, например в репозитории или локальной файловой системе.
Чтобы определить расположение файлов, введите следующее:
%sh ls
-
Файлы не в репозитории: команда возвращает файловую систему
/databricks/driver
. -
Файлы находятся в репозитории: команда возвращает виртуализированное репозиторие, например
/Workspace/Repos/name@domain.com/public_repo_2/repos_file_system
.
Чтение файлов рабочей области данных
Вы можете программно считывать небольшие файлы данных, такие как файлы .csv
или .json
, из кода в ваших записных книжках. В следующем примере Pandas используется для запроса файлов, хранящихся в каталоге /data
относительно корневого каталога репозитория проекта:
import pandas as pd
df = pd.read_csv("./data/winequality-red.csv")
df
С помощью Spark можно считывать файлы данных. Необходимо предоставить Spark полный путь.
- Файлы рабочей области в папках Git используют путь
file:/Workspace/Repos/<user-folder>/<repo-name>/path/to/file
. - Файлы рабочей области в личном каталоге используют путь:
file:/Workspace/Users/<user-folder>/path/to/file
.
Абсолютный или относительный путь к файлу можно скопировать из раскрывающегося меню рядом с файлом:
файловое раскрывающееся меню
В приведенном ниже примере показано использование {os.getcwd()}
для получения полного пути.
import os
spark.read.format("csv").load(f"file:{os.getcwd()}/my_data.csv")
Дополнительные сведения о файлах в Azure Databricks см. в статье Работа с файлами в Azure Databricks.
Программное создание, обновление и удаление файлов и каталогов
В Databricks Runtime 11.3 LTS и более поздних версиях можно напрямую управлять файлами рабочей области в Azure Databricks. Блокноты рассматриваются как файлы рабочей области в Databricks Runtime версии 16.2 и выше, а также в бессерверной среде версии 2 и выше. В следующих примерах используются стандартные пакеты и функции Python для создания файлов и каталогов и управления ими.
# 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')
Записные книжки в качестве рабочих файлов
Заметка
Эта функция доступна в Databricks Runtime 16.2 и выше, и в бессерверной среде 2 и выше.
Все программные взаимодействия с файлами также доступны для записных книжек. Ресурс в рабочей области определяется как записная книжка, если:
- он имеет расширение
.ipynb
, - или содержит строку
Databricks notebook source
в комментарии в первой строке и имеет одно из следующих расширений:.py
,.r
,.scala
,.sql
.
Любое запись или переименование записной книжки или файла, изменяющего эти условия, также изменяет тип записной книжки или файла. Например, если у вас есть файл myfile.txt
с # Databricks notebook source
в качестве первой строки, переименование этого файла в myfile.py
преобразует его в записную книжку.
Сведения о преобразовании файла в записную книжку см. в разделе Импорт файла и его преобразование в записную книжку.