Qual é o diretório de trabalho atual padrão?
Este artigo descreve como o diretório de trabalho atual (CWD) default funciona para Notebook e execução de arquivos.
Observação
Use o Databricks Runtime 14.0+ e as configurações default workspace para obter mais consistência no comportamento (CWD) em todo o workspace.
Existem dois comportamentos CWD default para código executado localmente em Notebook e arquivos:
CWD retorna o diretório que contém o Notebook ou script em execução.
CWD retorna um diretório que representa o volume de armazenamento temporário anexado ao driver.
Esse comportamento do CWD afeta todo o código, incluindo %sh
e código Python ou R que não usa Apache Spark. O comportamento é determinado pela linguagem de código, pela versão do Databricks Runtime, pelo caminho workspace e pela configuração do administrador workspace .
Para o código Scala, o CWD é o armazenamento efêmero anexado ao driver.
Para código em todas as outras linguagens:
No Databricks Runtime 14.0 e acima, o CWD é o diretório que contém o Notebook ou script que está sendo executado. Isso é verdade independentemente de o código estar em
/Workspace/Repos
.Para Notebook executando Databricks Runtime 13.3 LTS e abaixo, o CWD depende se o código está em
/Workspace/Repos
:Para código executado em um caminho fora de
/Workspace/Repos
, o CWD é o volume de armazenamento efêmero anexado ao driverPara código executado em um caminho em
/Workspace/Repos
, o CWD depende da configuração do administrador e da versão do DBR clusters :Para workspace com
enableWorkspaceFilesystem
definido comodbr8.4+
outrue
, nas versões 8.4 e superiores do DBR, o CWD é o diretório que contém o Notebook ou script que está sendo executado. Nas versões DBR abaixo de 8.4, é o volume de armazenamento efêmero anexado ao driverPara workspace com
enableWorkspaceFilesystem
definido comodbr11.0+
, nas versões 11.0 e superiores do DBR, o CWD é o diretório que contém o Notebook ou script em execução. Nas versões DBR abaixo de 11.0, é o volume de armazenamento efêmero anexado ao driverPara workspace com
enableWorkspaceFilesystem
definido comofalse
, o CWD é o volume de armazenamento temporário anexado ao driver
Obtenha o CWD em seu código
Para obter o workspace CWD para seu pipeline Notebook, ligue para os.getcwd()
. O senhor deve importar o módulo os
(o módulo de interação do sistema de arquivos default Python ) no início do seu Notebook com import os
. Por exemplo:
import os
...
cwd = os.getcwd()
O senhor também pode definir o CWD chamando os.chdir('/path/to/dir')
no início do seu notebook pipeline. O senhor só pode definir o CWD quando estiver executando um Notebook no site workspace com o WSFS ativado.
Como isso afeta as cargas de trabalho?
Os maiores impactos nas cargas de trabalho têm a ver com a persistência e localização dos arquivos:
No Databricks Runtime 13.3 LTS e versões anteriores, para código executado em um caminho fora de
/Workspace/Repos
, muitos trechos de código armazenam dados em um local default em um volume de armazenamento efêmero que é excluído permanentemente quando os clusters são encerrados.No Databricks Runtime 14.0 e acima, o comportamento default para essas operações cria arquivos workspace armazenados junto com o Notebook em execução que persistem até serem explicitamente excluídos.
Para obter notas sobre as diferenças de desempenho e outras limitações inerentes aos arquivos workspace, consulte Trabalhar com arquivos workspace .
Reverter para comportamento legado
Você pode alterar o diretório de trabalho atual de qualquer Notebook usando o método Python os.chdir()
. Se quiser garantir que cada Notebook use um CWD nos volumes de armazenamento efêmero anexados ao driver, você pode adicionar o seguinte comando à primeira célula de cada Notebook e executá-lo antes de qualquer outro código:
import os
os.chdir("/tmp")