Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Você pode interagir com arquivos de espaço de trabalho armazenados no Azure Databricks programaticamente. Isso permite tarefas como:
- Armazenamento de pequenos arquivos de dados ao lado de blocos de anotações e código.
- Gravando arquivos de log em diretórios sincronizados com o Git.
- Importação de módulos usando caminhos relativos.
- Criação ou modificação de um arquivo de especificação de ambiente.
- Saída de escrita a partir de blocos de notas.
- Saída de escrita da execução de bibliotecas como Tensorboard.
Você pode programaticamente criar, editar, renomear e excluir arquivos de espaço de trabalho no Databricks Runtime 11.3 LTS e superior. Essa funcionalidade é suportada para notebooks no Databricks Runtime 16.2 e superior, e ambiente sem servidor 2 e superior.
Observação
Para desativar a gravação em arquivos de espaço de trabalho, defina a variável de ambiente de cluster WSFS_ENABLE_WRITE_SUPPORT=false. Para obter mais informações, consulte variáveis de ambiente.
Observação
No Databricks Runtime 14.0 e superiores, o diretório de trabalho atual (CWD) predefinido para código executado localmente é o diretório que contém o caderno ou script que está a ser executado. Esta é uma mudança no comportamento do Databricks Runtime 13.3 LTS e inferior. Consulte Qual é o diretório de trabalho atual padrão?.
Em computação serverless, o diretório de trabalho não é garantido, por isso use caminhos absolutos para referenciar ficheiros. Consulte Limitações de computação sem servidor.
Ler as localizações dos ficheiros
Use comandos shell para ler os locais dos arquivos, por exemplo, em um repositório ou no sistema de arquivos local.
Para determinar a localização dos ficheiros, introduza o seguinte:
%sh ls
-
Os arquivos não estão em um repositório: O comando retorna o sistema
/databricks/driverde arquivos . -
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 de espaço de trabalho de dados
Você pode ler automaticamente pequenos arquivos de dados, como arquivos .csv ou .json, em código nos seus notebooks. O exemplo a seguir usa 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 arquivos de dados. Você deve fornecer à Spark o caminho totalmente qualificado.
- Os arquivos de espaço de trabalho nas pastas do Git usam o caminho
file:/Workspace/Repos/<user-folder>/<repo-name>/path/to/file. - Os arquivos de espaço de trabalho em seu diretório pessoal usam 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:
O exemplo abaixo 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 espaços de trabalho onde a raiz e as montagens do DBFS estão desabilitadas, você também pode usar dbfs:/Workspace para acessar arquivos de espaço de trabalho com utilitários Databricks. Isso requer o Databricks Runtime 13.3 LTS ou superior. Consulte Desabilitar o acesso à raiz e montagens do DBFS em seu espaço de trabalho existente do Azure Databricks.
Para saber mais sobre arquivos no Azure Databricks, consulte Trabalhar com arquivos no Azure Databricks.
Criar, atualizar e excluir arquivos e diretórios programaticamente
Você pode manipular programaticamente arquivos de espaço de trabalho no Azure Databricks, semelhante a como você trabalha com arquivos em qualquer sistema de arquivos padrão.
Observação
No Databricks Runtime 16.2 e superior, 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 caderno, consulte Converter um arquivo em um caderno.
Observação
O diretório pai de um ficheiro já deve existir antes de escreveres nele. O Azure Databricks armazena temporariamente as operações de escrita em ficheiros e grava-as no espaço de trabalho de forma assíncrona, pelo que a escrita num caminho cujo diretório principal não existe falha com AsyncFlushFailedException após a chamada de escrita, em vez de falhar no momento em que é efetuada. Crie primeiro o diretório pai, como mostrado no exemplo seguinte.
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 ambas ter o nome My query. Isto pode acontecer quando os ativos foram criados antes de a unicidade do nome ser totalmente aplicada.
Quando uma pasta contém nomes duplicados de ativos, o acesso baseado em ficheiros à pasta falha, embora os próprios ativos permaneçam inalterados. Pode ver os seguintes erros:
-
Name not unique on network(OSError: [Errno 76])—por exemplo, quando executalsou executa outros comandos no terminal web, ou lista a pasta a partir de um notebook. -
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. Ainda podes abrir e usar cada asset a partir do navegador do espaço de trabalho. Apenas os comandos que chegam à pasta através do sistema de ficheiros — como o terminal web, WSFS ou operações de pasta do Git — são afetados.
Para encontrar recursos com nomes duplicados, execute o seguinte notebook. Analisa uma pasta e as suas subpastas e lista ativos que partilham o mesmo nome. O notebook é só de leitura e não renomeia nem apaga quaisquer recursos.
Localizar ativos duplicados no espaço de trabalho
Para resolver nomes duplicados usando a interface do espaço de trabalho:
- No navegador de espaços de trabalho, abra cada pasta identificada pelo notebook.
- Renomeie ou elimine assets duplicados até que cada asset na pasta tenha um nome único.
Depois de todos os nomes de assets na pasta serem únicos, o acesso baseado em ficheiros volta a funcionar.