Compartilhar via


Qual é o diretório de trabalho atual padrão?

Este artigo descreve como o diretório de trabalho atual padrão (CWD) funciona para execução de arquivos notebooks.

Observação

Use o Databricks Runtime 14.0+ e configurações de workspace padrão para obter mais consistência no comportamento (CWD) em todo o workspace.

Há dois comportamentos CWD padrão para código executado localmente em notebooks e arquivos:

  1. CWD retorna o diretório que contém o notebook ou o script que está sendo executado.
  2. 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 o código %sh e 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 workspace e configuração de administrador do workspace.

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 posteriores, o CWD é o diretório que contém o notebook ou o script que está sendo executado. Isso é verdadeiro independentemente se o código está em /Workspace/Repos.
  • Para notebooks que executam o Databricks Runtime 13.3 LTS e abaixo, o CWD depende se o código está em /Workspace/Repos:
  • Para o código executado em um caminho fora de /Workspace/Repos, o CWD é o volume de armazenamento efêmero anexado ao driver
  • Para o código executado em um caminho em /Workspace/Repos, o CWD depende da configuração do administrador e da versão DBR do cluster:
    • Para workspaces com enableWorkspaceFilesystem definido como dbr8.4+ ou true, nas versões 8.4 e superiores da DBR, o CWD é o diretório que contém o notebook ou o script que está sendo executado. Nas versões do DBR abaixo da 8.4, é o volume de armazenamento efêmero anexado ao driver
    • Para workspaces com enableWorkspaceFilesystem definido como dbr11.0+, nas versões 11.0 e superiores da DBR, o CWD é o diretório que contém o notebook ou o script que está sendo executado. Em versões de DBR abaixo da 11.0, é o volume de armazenamento efêmero anexado ao driver
    • Para workspaces com enableWorkspaceFilesystem definido como false, o CWD é o volume de armazenamento efêmero anexado ao driver

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 do arquivo:

  • No Databricks Runtime 13.3 LTS e abaixo, para o código executado em um caminho fora de /Workspace/Repos, muitos snippets de có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 dessas operações cria arquivos de workspace armazenados junto com o notebook em execução que persistem até serem excluídos explicitamente.

Para ver observações sobre diferenças de desempenho e outras limitações inerentes aos arquivos de workspace, confira Trabalhar com arquivos de workspace.

Reverter para o comportamento herdado

Você pode alterar o diretório de trabalho atual para qualquer notebook usando o método Python os.chdir(). Se você quiser garantir que cada notebook use um CWD nos volumes de armazenamento efêmeros anexados ao driver, adicione o seguinte comando à primeira célula de cada notebook e execute-o antes de qualquer outro código:

import os

os.chdir("/tmp")