Interaja programaticamente com os arquivos do espaço de trabalho
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 superior, o CWD (diretório de trabalho atual) padrão para o código executado localmente é o diretório que contém o notebook ou o 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?.
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
/databricks/driver
do sistema de arquivos. - 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")
Para saber mais sobre arquivos no Azure Databricks, confira Como trabalhar com arquivos no Azure Databricks.
Criar, atualizar e excluir arquivos e diretórios programaticamente
No Databricks Runtime 11.3 LTS e superior, você pode manipular diretamente os arquivos de workspace no Azure Databricks. Os notebooks são tratados como arquivos de workspace no Databricks Runtime 16.2 e superior e no ambiente sem servidor 2 e superior. Os exemplos a seguir usam pacotes e funcionalidades padrão do Python para criar e manipular arquivos e diretórios.
# 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')
Notebooks como arquivos de workspace
Observação
Esse recurso está disponível 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. Um ativo no workspace é identificado como um notebook se:
- ele tem a extensão
.ipynb
, - ou contém a cadeia de caracteres
Databricks notebook source
em um comentário na primeira linha e tem uma das seguintes extensões:.py
,.r
,.scala
,.sql
.
Qualquer gravação ou renomeação de um notebook ou arquivo que altera essas condições também altera o tipo do notebook ou arquivo. Por exemplo, se você tiver um arquivo myfile.txt
que tenha # Databricks notebook source
como a primeira linha, renomear esse arquivo para myfile.py
o transforma em um notebook.
Para obter informações sobre como converter um arquivo em um notebook, consulte Importar um arquivo e convertê-lo em um notebook.