Compartir a través de


Interacción mediante programación con archivos del área de trabajo

Puede interactuar con los archivos del área de trabajo almacenados en Azure Databricks mediante programación. Esto habilita tareas como:

  • El almacenamiento de archivos de datos pequeños junto con cuadernos y códigos.
  • La escritura de archivos de registros en directorios sincronizados con Git.
  • La importación de módulos mediante rutas de acceso relativas.
  • La creación o modificación de un archivo de especificación de entorno.
  • La escritura de las salidas en cuadernos.
  • Escritura del resultado de la ejecución de bibliotecas como por ejemplo Tensorboard.

Puede crear, editar, cambiar el nombre de los archivos y eliminarlos del área de trabajo mediante programación en Databricks Runtime 11.3 LTS y versiones posteriores. Esta funcionalidad es compatible con cuadernos en Databricks Runtime 16.2 y versiones posteriores, y en el entorno sin servidor 2 y versiones posteriores.

Nota:

Para deshabilitar la escritura en archivos del área de trabajo, establezca la variable WSFS_ENABLE_WRITE_SUPPORT=false del entorno del clúster. Para más información, consulte Variables de entorno.

Nota:

En Databricks Runtime 14.0 y versiones posteriores, el directorio de trabajo actual predeterminado (CWD) para el código ejecutado localmente es el directorio que contiene el cuaderno o el script que se está ejecutando. Este es un cambio en el comportamiento de Databricks Runtime 13.3 LTS y versiones posteriores. Consulte ¿Cuál es el directorio de trabajo actual predeterminado?.

Lectura de las ubicaciones de los archivos

Use comandos de shell para leer las ubicaciones de los archivos, por ejemplo, en un repositorio o en el sistema de archivos local.

Para determinar la ubicación de los archivos, escriba lo siguiente:

%sh ls
  • Los archivos no están en un repositorio: El comando devuelve el sistema /databricks/driverde archivos .
  • Los archivos están en un repositorio: el comando devuelve un repositorio virtualizado como /Workspace/Repos/name@domain.com/public_repo_2/repos_file_system.

Lectura de archivos de datos del área de trabajo

Puedes leer mediante programación archivos de datos pequeños, como archivos .csv o .json, desde el código en tus cuadernos. En el ejemplo siguiente se usa Pandas para consultar los archivos almacenados en un directorio /data, relativo a la raíz del repositorio del proyecto:

import pandas as pd
df = pd.read_csv("./data/winequality-red.csv")
df

Puede usar Spark para leer archivos de datos. Debe proporcionar a Spark la ruta de acceso completa.

  • Los archivos del área de trabajo de las carpetas Git usan la ruta de acceso file:/Workspace/Repos/<user-folder>/<repo-name>/path/to/file.
  • Los archivos del área de trabajo en tu directorio personal usan la ruta: file:/Workspace/Users/<user-folder>/path/to/file.

Puede copiar la ruta de acceso absoluta o relativa a un archivo desde el menú desplegable situado junto al archivo:

menú desplegable de archivos

En el ejemplo siguiente se muestra el uso de {os.getcwd()} para obtener la ruta de acceso completa.

import os
spark.read.format("csv").load(f"file:{os.getcwd()}/my_data.csv")

Para obtener más información sobre los archivos de Azure Databricks, consulte Trabajar con archivos en Azure Databricks.

Crear, actualizar y eliminar archivos y directorios mediante programación

Puede manipular mediante programación los archivos del área de trabajo en Azure Databricks, de forma similar a cómo se trabaja con archivos en cualquier sistema de archivos estándar.

Nota:

En Databricks Runtime 16.2 y versiones posteriores, y entorno sin servidor 2 y versiones posteriores, todas las interacciones mediante programación con archivos también están disponibles para cuadernos. Para obtener información sobre cómo convertir un archivo en un cuaderno, consulte Conversión de un archivo en un cuaderno.

En los siguientes ejemplos se usan paquetes y funcionalidades estándar de Python para crear y manipular archivos y directorios.

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/")