Partilhar via


Interagir programaticamente com arquivos de espaço de trabalho

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 superior, o diretório de trabalho atual padrão (CWD) para código executado localmente é o diretório que contém o bloco de anotações ou script que está sendo 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?.

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
  • Arquivos não estão em um repositório: O comando retorna o sistema de arquivos /databricks/driver.
  • 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:

menu suspenso de 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")

Para saber mais sobre arquivos no Azure Databricks, consulte 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 do espaço de trabalho no Azure Databricks. Os cadernos são tratados como arquivos de espaço de trabalho no Databricks Runtime 16.2 e posteriores e no ambiente sem servidor 2 e posteriores. 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')

Cadernos como ficheiros de espaço de trabalho

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 espaço de trabalho é identificado como um bloco de anotações se:

  • tem uma 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 bloco de anotações ou arquivo que altere essas condições também altera o tipo do bloco de anotações ou arquivo. Por exemplo, se tiveres um arquivo myfile.txt que tenha # Databricks notebook source como a primeira linha, renomear esse arquivo para myfile.py converte-o em um caderno.

Para obter informações sobre como converter um ficheiro num bloco de notas, consulte Importar um ficheiro e convertê-lo num bloco de notas.