Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode interagir com os arquivos de workspace armazenados no Azure Databricks programaticamente. Isso habilita tarefas como:
- Armazenar arquivos de dados pequenos junto com notebooks e código.
- Gravar arquivos de log em diretórios sincronizados com o Git.
- Importar módulos usando caminhos relativos.
- Criar ou modificar um arquivo de especificação de ambiente.
- Gravar a saída de notebooks.
- Gravar a saída da execução de bibliotecas como o Tensorboard.
Você pode criar, editar, renomear e excluir arquivos do workspace de modo programático no Databricks Runtime 11.3 LTS e superior. Essa funcionalidade tem suporte para notebooks no Databricks Runtime 16.2 e superiores e no ambiente sem servidor 2 e superiores.
Observação
Para desabilitar a gravação nos arquivos de workspace, defina a variável de ambiente de cluster WSFS_ENABLE_WRITE_SUPPORT=false. Para obter mais informações, confira Variáveis de ambiente.
Observação
No Databricks Runtime 14.0 e superiores, o diretório de trabalho atual (CWD) padrão para código executado localmente é o diretório que contém o notebook ou script que está sendo executado. Essa é uma alteração no comportamento do Databricks Runtime 13.3 LTS e inferior. Confira Qual é o diretório de trabalho padrão atual?.
Em computação serverless, o diretório funcional não é garantido, então use caminhos absolutos para referenciar arquivos. Confira Limitações de computação sem servidor.
Ler os locais dos arquivos
Use comandos de shell para ler os locais dos arquivos, por exemplo, em um repositório ou no sistema de arquivos local.
Para determinar o local dos arquivos, insira o seguinte:
%sh ls
-
Os arquivos não estão em um repositório: O comando retorna o sistema de arquivos
/databricks/driver. -
Os arquivos estão em um repositório: o comando retorna um repositório virtualizado, como
/Workspace/Repos/name@domain.com/public_repo_2/repos_file_system.
Ler arquivos do workspace de dados
Você pode ler programaticamente arquivos de dados pequenos, como arquivos .csv ou .json do código nos seus notebooks. O exemplo a seguir usa o Pandas para consultar arquivos armazenados em um diretório /data relativo à raiz do repositório do projeto:
import pandas as pd
df = pd.read_csv("./data/winequality-red.csv")
df
Você pode usar o Spark para ler arquivo de dados. Você deve fornecer ao Spark o caminho totalmente qualificado.
- Arquivos de workspace em pastas Git usam o caminho
file:/Workspace/Repos/<user-folder>/<repo-name>/path/to/file. - Os arquivos do workspace em seu diretório pessoal utilizam o caminho:
file:/Workspace/Users/<user-folder>/path/to/file.
Você pode copiar o caminho absoluto ou relativo para um arquivo no menu suspenso ao lado do arquivo:
menu suspenso do arquivo 
O exemplo a seguir mostra o uso de {os.getcwd()} para obter o caminho completo.
import os
spark.read.format("csv").load(f"file:{os.getcwd()}/my_data.csv")
Observação
Em workspaces onde a raiz DBFS e as montagens estão desativadas, você também pode usar dbfs:/Workspace para acessar arquivos do workspace com os utilitários do Databricks. Isso requer o Databricks Runtime 13.3 LTS ou superior. Consulte Desabilitar o acesso à raiz do DBFS e às montagens no seu workspace do Azure Databricks existente.
Para saber mais sobre arquivos no Azure Databricks, confira Como trabalhar com arquivos no Azure Databricks.
Criar, atualizar e excluir diretórios programaticamente
Você pode manipular programaticamente arquivos de workspace no Azure Databricks, semelhante ao modo como você trabalha com arquivos em qualquer sistema de arquivos padrão.
Observação
No Databricks Runtime 16.2 e posterior e no ambiente sem servidor 2 e superior, todas as interações programáticas com arquivos também estão disponíveis para notebooks. Para obter informações sobre como converter um arquivo em um notebook, consulte Converter um arquivo em um bloco de anotações.
Observação
O diretório pai de um arquivo já deve existir antes de você escrever nele. O Azure Databricks armazena em buffer as gravações de arquivos e as grava no workspace de forma assíncrona, portanto, gravar em um caminho cujo diretório pai não existe falha com AsyncFlushFailedException após a chamada de gravação, em vez de no momento em que você a faz. Crie primeiro o diretório pai, como mostrado no exemplo a seguir.
Os exemplos a seguir usam pacotes e funcionalidades padrão do Python para criar e manipular arquivos e diretórios.
import os
# Create a new directory
os.mkdir('dir1')
# Create a new file and write to it
with open('dir1/new_file.txt', "w") as f:
f.write("new content")
# Append to a file
with open('dir1/new_file.txt', "a") as f:
f.write(" continued")
# Delete a file
os.remove('dir1/new_file.txt')
# Delete a directory
os.rmdir('dir1')
import shutil
# Copy a dashboard
shutil.copy("my-dashboard.lvdash.json", "my-dashboard-copy.lvdash.json")
# Move a query to a shared folder
shutil.move("test-query.dbquery","shared-queries/")
Resolver nomes duplicados de ativos
Em alguns casos, uma pasta de espaço de trabalho pode já conter assets com o mesmo nome. Por exemplo, duas consultas SQL podem ser ambas chamadas My query. Isso pode ocorrer quando os ativos foram criados antes que a unicidade do nome fosse totalmente aplicada.
Quando uma pasta contém nomes duplicados de ativos, o acesso baseado em arquivos à pasta falha, embora os próprios ativos permaneçam inalterados. Você poderá ver erros, como:
-
Name not unique on network(OSError: [Errno 76])—por exemplo, quando você executalsou outros comandos no terminal web, ou lista a pasta de um caderno. -
File name conflictouRESOURCE_CONFLICT: Duplicate entities detected in the directory—por exemplo, durante operações de pasta Git.
Observação
Nomes duplicados não afetam os assets em si. Você ainda pode abrir e usar cada asset pelo navegador do workspace. Somente comandos que chegam à pasta pelo sistema de arquivos — como o terminal web, WSFS ou operações de pasta Git — são afetados.
Para encontrar assets com nomes duplicados, execute o seguinte notebook. Ele escaneia uma pasta e suas subpastas e lista recursos que compartilham o mesmo nome. O notebook é somente leitura e não renomeia nem exclui nenhum ativo.
Encontre recursos duplicados no espaço de trabalho
Para resolver nomes duplicados usando a interface do workspace:
- No navegador de workspace, abra cada pasta identificada pelo notebook.
- Renomeie ou exclua ativos duplicados até que cada recurso na pasta tenha um nome único.
Depois que todos os nomes de ativos na pasta forem únicos, o acesso baseado em arquivos funciona novamente.