Что такое текущий рабочий каталог по умолчанию?
В этой статье описывается, как работает текущий рабочий каталог (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 зависит от параметра конфигурации администратора и версии DBR кластера:- Для рабочих областей с
enableWorkspaceFilesystem
заданным значениемdbr8.4+
илиtrue
(или) в DBR версии 8.4 и более поздних версиях CWD — это каталог, содержащий записную книжку или сценарий, выполняемый. В версиях DBR ниже 8.4 это временный том хранилища, подключенный к драйверу - Для рабочих областей с
enableWorkspaceFilesystem
установленным значениемdbr11.0+
в DBR версии 11.0 и более поздних версиях CWD — это каталог, содержащий записную книжку или скрипт, выполняемый. В версиях DBR ниже 11.0 это временный том хранилища, подключенный к драйверу. - Для рабочих областей с
enableWorkspaceFilesystem
заданным значениемfalse
CWD — это временный том хранилища, подключенный к драйверу.
- Для рабочих областей с
Как это влияет на рабочие нагрузки?
Наибольшее влияние на рабочие нагрузки связано с сохранением файлов и расположением:
- В Databricks Runtime 13.3 LTS и ниже для кода, выполняемого вне пути
/Workspace/Repos
, многие фрагменты кода хранят данные по умолчанию в томе эфемерного хранилища, который окончательно удаляется при завершении кластера. - В Databricks Runtime 14.0 и более поздних версиях поведение по умолчанию создает файлы рабочей области, хранящиеся вместе с запущенной записной книжкой, которая сохраняется до явного удаления.
Заметки о различиях в производительности и других ограничениях, присущих файлам рабочей области, см. в статье "Работа с файлами рабочей области".
Возврат к поведению прежних версий
Текущий рабочий каталог для любой записной книжки можно изменить с помощью метода os.chdir()
Python. Если вы хотите убедиться, что каждая записная книжка использует CWD в томах эфемерного хранилища, подключенных к драйверу, можно добавить следующую команду в первую ячейку каждой записной книжки и запустить ее перед любым другим кодом:
import os
os.chdir("/tmp")