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 de archivos
/databricks/driver
. - 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:
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.
Creación, actualización y eliminación de archivos y directorios mediante programación
En Databricks Runtime 11.3 LTS y versiones posteriores, puede manipular directamente los archivos del área de trabajo en Azure Databricks. Los cuadernos se tratan como archivos de área de trabajo en Databricks Runtime 16.2 y versiones posteriores, y entorno sin servidor 2 y versiones posteriores. En los siguientes ejemplos se usan paquetes y funcionalidades estándar de Python para crear y manipular archivos y directorios.
# 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')
Cuadernos como archivos de espacio de trabajo
Nota:
Esta característica está disponible 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. Un recurso del área de trabajo se identifica como un cuaderno si:
- tiene una extensión
.ipynb
, - o contiene la cadena
Databricks notebook source
en un comentario de la primera línea y tiene una de las siguientes extensiones:.py
,.r
,.scala
,.sql
.
Cualquier escritura o cambio de nombre de un cuaderno o archivo que cambie estas condiciones, también cambia el tipo de cuaderno o archivo. Por ejemplo, si tienes un archivo myfile.txt
que tiene # Databricks notebook source
como la primera línea, renombrar ese archivo a myfile.py
lo convierte en un cuaderno.
Para obtener información sobre cómo convertir un archivo en un cuaderno, consulte Importación de un archivo y conversión en cuaderno.