Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo descreve como o diretório de trabalho atual padrão (CWD) funciona para execução de bloco de anotações e arquivos.
Nota
Use o Databricks Runtime 14.0+ e as configurações padrão do espaço de trabalho para obter mais consistência no comportamento (CWD) em todo o espaço de trabalho.
Há dois comportamentos CWD padrão para código executado localmente em blocos de anotações e arquivos:
- CWD retorna o diretório que contém o bloco de anotações ou script que está sendo executado.
- CWD retorna um diretório que representa o volume de armazenamento efêmero anexado ao driver.
Esse comportamento CWD afeta todo o código, incluindo %sh o código Python ou R que não usa o Apache Spark. O comportamento é determinado pela linguagem de código, versão do Databricks Runtime, caminho do espaço de trabalho e configuração do administrador do espaço de trabalho.
Para o código Scala, o CWD é o armazenamento efêmero anexado ao driver.
Para código em todos os outros idiomas:
- No Databricks Runtime 14.0 e superior, o CWD é o diretório que contém o bloco de anotações ou script que está sendo executado. Isso é verdade independentemente de o código estar em
/Workspace/Repos. - Para notebooks que executam o Databricks Runtime 13.3 LTS e inferior, o CWD depende se o código está em
/Workspace/Repos: - Para código executado em um caminho fora do
/Workspace/Repos, o CWD é o volume de armazenamento efêmero anexado ao driver - Para código executado num caminho em
/Workspace/Repos, o CWD depende da configuração de administrador e da versão do Runtime do Databricks no cluster.- Para espaços de trabalho definidos
enableWorkspaceFilesystemcomodbr8.4+outrue, nas versões 8.4 e superiores do Databricks Runtime, o CWD é o diretório que contém o caderno ou script que está a ser executado. Nas versões de Runtime do Databricks abaixo de 8.4, é o volume de armazenamento efémero associado ao driver - Para espaços de trabalho definidos
enableWorkspaceFilesystemparadbr11.0+, nas versões 11.0 e superiores do Databricks Runtime, o CWD é o diretório que contém o caderno ou script a ser executado. Nas versões de Runtime do Databricks abaixo da 11.0, é o volume de armazenamento efémero ligado ao driver - Para ambientes de trabalho com
enableWorkspaceFilesystemdefinido comofalse, o CWD é o volume de armazenamento efémero conectado ao driver
- Para espaços de trabalho definidos
Obtenha o CWD no seu código
Para obter o diretório de trabalho atual (CWD) do espaço de trabalho para o seu bloco de notas de pipeline, execute o comando os.getcwd(). Você deve importar o os módulo (o módulo de interação do sistema de arquivos Python padrão) no início do seu bloco de anotações com import oso . Por exemplo:
import os
...
cwd = os.getcwd()
Você também pode definir o CWD chamando os.chdir('/path/to/dir') no início do seu notebook de pipeline. Você só pode definir o CWD quando está executando um notebook a partir do seu espaço de trabalho com o WSFS habilitado.
Como isso afeta as cargas de trabalho?
Os maiores impactos nas cargas de trabalho têm a ver com a persistência e a localização dos arquivos:
- No Databricks Runtime 13.3 LTS e inferior, para código executado em um caminho fora do , muitos trechos de
/Workspace/Reposcódigo armazenam dados em um local padrão em um volume de armazenamento efêmero que é excluído permanentemente quando o cluster é encerrado. - No Databricks Runtime 14.0 e superior, o comportamento padrão para essas operações cria arquivos de espaço de trabalho armazenados ao lado do bloco de anotações em execução que persistem até serem explicitamente excluídos.
Para obter notas sobre diferenças de desempenho e outras limitações inerentes aos arquivos de espaço de trabalho, consulte Trabalhar com arquivos de espaço de trabalho.
Reverter para o comportamento herdado
Você pode alterar o diretório de trabalho atual para qualquer bloco de anotações usando o método os.chdir()Python . Se você quiser garantir que cada notebook use um CWD nos volumes de armazenamento efêmeros conectados 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")