Compartilhar via


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 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.