Поделиться через


Что такое текущий рабочий каталог по умолчанию?

В этой статье описывается, как работает текущий рабочий каталог (CWD) по умолчанию для выполнения записных книжек и файлов.

Примечание.

Используйте databricks Runtime 14.0+ и конфигурации рабочих областей по умолчанию для повышения согласованности в поведении (CWD) в рабочей области.

Существует два поведения CWD по умолчанию для кода, выполняемого локально в записных книжках и файлах:

  1. CWD возвращает каталог, содержащий выполняющуюся записную книжку или скрипт.
  2. 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 заданным значением falseCWD — это временный том хранилища, подключенный к драйверу.

Как это влияет на рабочие нагрузки?

Наибольшее влияние на рабочие нагрузки связано с сохранением файлов и расположением:

  • В Databricks Runtime 13.3 LTS и ниже для кода, выполняемого вне пути /Workspace/Repos, многие фрагменты кода хранят данные по умолчанию в томе эфемерного хранилища, который окончательно удаляется при завершении кластера.
  • В Databricks Runtime 14.0 и более поздних версиях поведение по умолчанию создает файлы рабочей области, хранящиеся вместе с запущенной записной книжкой, которая сохраняется до явного удаления.

Заметки о различиях в производительности и других ограничениях, присущих файлам рабочей области, см. в статье "Работа с файлами рабочей области".

Возврат к поведению прежних версий

Текущий рабочий каталог для любой записной книжки можно изменить с помощью метода os.chdir()Python. Если вы хотите убедиться, что каждая записная книжка использует CWD в томах эфемерного хранилища, подключенных к драйверу, можно добавить следующую команду в первую ячейку каждой записной книжки и запустить ее перед любым другим кодом:

import os

os.chdir("/tmp")