Interagir programaticamente com arquivos de espaço de trabalho

Você pode interagir com arquivos workspace armazenados no Databricks programaticamente. Isso permite tarefas como:

  • Armazenando pequenos arquivos de dados junto com Notebook e o código.

  • Gravar arquivos logs em diretórios sincronizados com o Git.

  • Importando módulos usando caminhos relativos.

  • Criando ou modificando um arquivo de especificação de ambiente.

  • Saída de gravação do Notebook.

  • Escrevendo a saída da execução de bibliotecas como TensorBoard.

Você pode criar, editar e excluir programaticamente arquivos workspace no Databricks Runtime 11.2 e acima.

Observação

Para desativar a gravação em arquivos workspace , configure a variável de ambiente clusters WSFS_ENABLE_WRITE_SUPPORT=false. Para mais informações, consulte variável de ambiente.

Observação

No Databricks Runtime 14.0 e acima, o diretório de trabalho atual (CWD) default para o código executado localmente é o diretório que contém o Notebook ou script que está sendo executado. Esta é uma mudança de comportamento do Databricks Runtime 13.3 LTS e abaixo. Consulte Qual é o diretório de trabalho atual default ?.

Leia a localização dos arquivos

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 arquivos, digite 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 espaço de trabalho de dados

Você pode ler programaticamente pequenos arquivos de dados como arquivos .csv ou .json do código em seu Notebook. O exemplo a seguir usa Pandas para query 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 ao Spark o caminho totalmente qualificado.

  • workspace Os arquivos nas pastas Git usam o caminho file:/Workspace/Repos/<user-folder>/<repo-name>/path/to/file.

  • arquivos workspace 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 dropdown 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 Databricks, consulte Trabalhar com arquivos no Databricks.

Crie, atualize e exclua arquivos e diretórios programaticamente

No Databricks Runtime 11.2e acima, você pode manipular diretamente os arquivos workspace no Databricks. Os exemplos a seguir usam pacotes e funcionalidades Python padrão 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')