Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как работает текущий рабочий каталог (CWD) по умолчанию для выполнения записных книжек и файлов.
Примечание.
Используйте Databricks Runtime 14.0+ и настройки рабочей области по умолчанию для обеспечения большей согласованности в поведении (CWD) во всей рабочей области.
Существует два стандартных поведения CWD для кода, выполняемого локально в блокнотах и файлах:
- CWD возвращает каталог, содержащий выполняющуюся записную книжку или скрипт.
- CWD возвращает каталог, представляющий временное хранилище, прикрепленное к драйверу.
Это поведение CWD влияет на весь код, включая код %sh, Python и R, который не использует Apache Spark. Поведение определяется языком кода, версией Databricks Runtime, пути к рабочей области и конфигурацией администратора рабочей области.
Для кода Scala CWD — это эфемерное хранилище, подключенное к драйверу.
Для кода на всех других языках:
- В Databricks Runtime 14.0 и последующих версиях CWD — это каталог, содержащий записную книжку или выполняемый скрипт. Это верно независимо от того, находится ли код в
/Workspace/Repos. - Для ноутбуков, которые работают на Databricks Runtime 13.3 LTS и более ранних версий, CWD зависит от того, находится ли код в
/Workspace/Repos: - Для кода, выполняемого в пути за пределами
/Workspace/Repos, CWD — это временный том хранилища, подключенный к драйверу. - Для кода, выполняемого в пути
/Workspace/Repos, CWD зависит от параметра конфигурации администратора и версии среды выполнения Databricks:- Для рабочих областей с
enableWorkspaceFilesystem, установленными вdbr8.4+илиtrue, в Databricks Runtime версии 8.4 и более поздних CWD — это каталог, содержащий записную книжку или скрипт, который выполняется. В Databricks Runtime версий ниже 8.4 это временный том хранения, прикрепленный к драйверу. - Для рабочих областей с
enableWorkspaceFilesystemустановленным значениемdbr11.0+на версиях Databricks Runtime 11.0 и выше, CWD — это каталог, содержащий записную книжку или выполняемый скрипт. В Databricks Runtime версии ниже 11.0, это временный том хранилища, подключённый к драйверу. - Для рабочих пространств с
enableWorkspaceFilesystemзаданным значениемfalse, CWD — это временный том хранилища, подключенный к драйверу.
- Для рабочих областей с
Получение CWD в коде
Чтобы получить текущий рабочий каталог (CWD) для записной книжки конвейера, выполните вызов os.getcwd(). Необходимо импортировать модуль os (основной модуль взаимодействия с файловой системой Python) в начало вашей записной книжки с помощью import os. Например:
import os
...
cwd = os.getcwd()
Вы также можете задать CWD, вызвав os.chdir('/path/to/dir') в начале блокнота вашей конвейерной системы. Вы можете установить CWD только при запуске записной книжки из вашей рабочей области, когда включен WSFS.
Как это влияет на рабочие нагрузки?
Наибольшее влияние на рабочие нагрузки связано с сохранением файлов и расположением:
- В Databricks Runtime 13.3 LTS и ниже для кода, выполняемого вне пути
/Workspace/Repos, многие фрагменты кода хранят данные по умолчанию в томе эфемерного хранилища, который окончательно удаляется при завершении кластера. - В Databricks Runtime 14.0 и выше по умолчанию создаются файлы рабочей области, которые хранятся вместе с запущенной записной книжкой и сохраняются до тех пор, пока не будут удалены явным образом.
Заметки о различиях в производительности и других ограничениях, присущих файлам рабочей области, см. в статье "Работа с файлами рабочей области".
Возврат к изначальному поведению
Текущий рабочий каталог для любой записной книжки можно изменить с помощью метода os.chdir()Python. Если вы хотите убедиться, что каждая записная книжка использует CWD в томах эфемерного хранилища, подключенных к драйверу, можно добавить следующую команду в первую ячейку каждой записной книжки и запустить ее перед любым другим кодом:
import os
os.chdir("/tmp")