Desarrollo de código en cuadernos de Databricks

En esta página, se describe cómo desarrollar código en cuadernos de Databricks, incluida la característica autocompletar, el formato automático para Python y SQL, la combinación de Python y SQL en un cuaderno y el seguimiento del historial de versiones de un cuaderno.

Para obtener más información sobre la funcionalidad avanzada disponible con el editor, como autocompletar, selección de variables, compatibilidad con varios cursores y diferencias en paralelo, consulte Uso del cuaderno y el editor de archivos de Databricks.

Al usar el cuaderno o el editor de archivos, Databricks Assistant está disponible para ayudarle a generar, explicar y depurar código. Consulte Uso de Databricks Assistant para más información.

Los cuadernos de Databricks también incluyen un depurador interactivo integrado para cuadernos de Python. Consulte Uso del depurador interactivo de Databricks.

Obtenga ayuda de codificación con Databricks Assistant

Databricks Assistant es un asistente de IA consciente del contexto con el que puede interactuar utilizando una interfaz conversacional, haciéndole más productivo dentro de Databricks. Puede describir la tarea en inglés y permitir que el asistente genere código de Python o consultas SQL, explicar código complejo y corregir errores automáticamente. El asistente usa metadatos de Unity Catalog para comprender las tablas, las columnas, las descripciones y los recursos de datos populares de toda la empresa y así proporcionar respuestas personalizadas.

Databricks Assistant puede ayudarle con las siguientes tareas:

  • Generar código.
  • Depurar el código, incluida la identificación y la sugerencia de correcciones de errores.
  • Transformar y optimizar el código.
  • Explicar el código.
  • Encontrar información pertinente en la documentación de Azure Databricks.

Para obtener información sobre cómo usar Databricks Assistant para ayudarle a codificar de forma más eficiente, consulte Uso de Databricks Assistant. Para obtener información general sobre Databricks Assistant, consulte Características con tecnología de DatabricksIQ.

Acceso a un cuaderno para editarlo

Para abrir un cuaderno, use la función Buscar del área de trabajo o el explorador del área de trabajo para ir al cuaderno y haga clic en el nombre o el icono del cuaderno.

Examinar datos

Use el explorador de esquema para explorar tablas y volúmenes disponibles para el cuaderno. Haga clic en el icono de datos del cuaderno situado a la izquierda del cuaderno para abrir el explorador de esquema.

El botón Para usted muestra solo las tablas que ha usado en la sesión actual o previamente marcadas como Favoritos.

A medida que escribe texto en el cuadro Filtro, la pantalla cambia para mostrar solo los elementos que contienen el texto que escribe. Solo aparecen los elementos que están abiertos actualmente o que se han abierto en la sesión actual. El cuadro Filtro no realiza una búsqueda completa de los catálogos, esquemas y tablas disponibles para el cuaderno.

Para abrir el menú kebab menú kebab, sitúe el cursor sobre el nombre del elemento, tal y como se muestra:

menú kebab en el explorador de esquema

Si el elemento es una tabla, puede hacer lo siguiente:

  • Cree y ejecute automáticamente una celda para mostrar una vista previa de los datos de la tabla. Seleccione Vista previa en una nueva celda en el menú kebab de la tabla.
  • Vea un catálogo, un esquema o una tabla en Explorador de catálogo. Seleccione Abrir en Explorador de catálogo en el menú kebab. Se abre una nueva pestaña que muestra el elemento seleccionado.
  • Obtenga la ruta de acceso a un catálogo, esquema o tabla. Seleccione Copiar ... ruta de acceso desde el menú kebab para el elemento.
  • Agregue una tabla a Favoritos. Seleccione Agregar tabla a favoritos en el menú kebab de la tabla.

Si el elemento es un catálogo, un esquema o un volumen, puede copiar la ruta de acceso del elemento o abrirlo en Explorador de catálogo.

Para insertar un nombre de tabla o columna directamente en una celda:

  1. Haga clic en el cursor de la celda en la ubicación en la que desea escribir el nombre.
  2. Mueva el cursor sobre el nombre de la tabla o el nombre de columna en el explorador de esquema.
  3. Haga clic en la doble flecha doble flechaque aparece a la derecha del nombre del elemento.

Accesos directos del teclado

Para mostrar los métodos abreviados de teclado, seleccione Ayuda y métodos abreviados de teclado. Los métodos abreviados de teclado disponibles dependen de si el cursor está en una celda de código (modo de edición) o no (modo de comando).

Buscar y reemplazar texto

Para buscar y reemplazar texto dentro de un cuaderno, seleccione Edit > Find and Replace (Editar > Buscar y reemplazar). La coincidencia actual se resalta en naranja y todas las demás coincidencias se resaltan en amarillo.

Texto coincidente

Para reemplazar la coincidencia actual, haga clic en Replace (Reemplazar). Para reemplazar todas las coincidencias del cuaderno, haga clic en Replace All (Reemplazar todo).

Para moverse entre coincidencias, haga clic en los botones Prev (Anterior) y Next (Siguiente). También puede presionar Mayús+Entrar y Entrar para ir a las coincidencias anteriores y siguientes, respectivamente.

Para cerrar la herramienta de buscar y reemplazar, haga clic en Icono de eliminación o pulse Escape.

Explorador de variables

Puede observar directamente variables de Python, Scala y R en la interfaz de usuario del cuaderno. Para Python en Databricks Runtime 12.2 LTS y versiones posteriores, las variables se actualizan a medida que se ejecuta una celda. Para Scala, R y para Python en Databricks Runtime 11.3 LTS y versiones posteriores, las variables se actualizan después de que una celda termine de ejecutarse.

Para abrir el explorador de variables, haga clic en el icono de explorador de variables en la barra lateral derecha. Se abre el explorador de variables, que muestra el valor y el tipo de datos, incluida la forma, para cada variable definida actualmente en el cuaderno. (La forma de un DataFrame de PySpark es "?", porque calcular la forma puede requerir operaciones de cálculo intensivas).

Para filtrar la pantalla, escriba el texto en el cuadro de búsqueda. La lista se filtrará automáticamente a medida que escribe.

Los valores de variable se actualizan automáticamente a medida que se ejecutan las celdas del cuaderno.

variable de ejemplo del panel del explorador

Combinación de celdas seleccionadas

Puede ejecutar una sola celda o una colección de celdas. Para seleccionar una sola celda, haga clic en cualquier parte de la celda. Para seleccionar varias celdas, mantenga presionada la tecla Command en MacOS o la tecla Ctrl en Windows y haga clic en la celda fuera del área de texto, como se muestra en la captura de pantalla.

cómo seleccionar varias celdas

Para ejecutar las celdas seleccionadas, seleccione Ejecutar > Ejecutar celdas seleccionadas.

El comportamiento de este comando depende del clúster al que está asociado el cuaderno.

  • En un clúster que ejecuta Databricks Runtime 13.3 LTS o inferior, las celdas seleccionadas se ejecutan individualmente. Si se produce un error en una celda, la ejecución continúa con las celdas posteriores.
  • En un clúster que ejecuta Databricks Runtime 14.0 o superior, o en un almacenamiento de SQL, las celdas seleccionadas se ejecutan como un lote. Cualquier error detiene la ejecución y no se puede cancelar la ejecución de celdas individuales. Puede usar el botón Interrumpir para detener la ejecución de todas las celdas.

Modularización del código

Importante

Esta característica está en versión preliminar pública.

Con Databricks Runtime 11.3 LTS y versiones posteriores, puede crear y administrar archivos de código fuente en el área de trabajo de Azure Databricks y después, importar estos archivos en los cuadernos según sea necesario.

Para más información sobre cómo trabajar con archivos de código fuente, consulte Uso compartido de código entre cuadernos de Databricks y Trabajar con módulos de Python y R.

Ejecución del texto seleccionado

Puede resaltar código o instrucciones SQL en una celda del cuaderno y ejecutar solo esa selección. Esto es útil si desea iterar rápidamente el código y las consultas.

  1. Resalte las líneas que desea ejecutar.

  2. Seleccione Ejecutar > Ejecutar texto seleccionado o use el método abreviado de teclado Ctrl+Shift+Enter. Si no hay texto resaltado, el comando Ejecutar texto seleccionado ejecuta la línea actual.

    Ejecutar las líneas seleccionadas

Si usa varios lenguajes en una celda, debe incluir la línea %<language> en la selección.

Ejecutar texto seleccionado también ejecuta código contraído, si hay alguno en la selección resaltada.

Se admiten comandos de celda especiales, como %run, %pip y %sh.

No puede usar Ejecutar texto seleccionado en celdas que tengan varias pestañas de salida (es decir, celdas en las que haya definido un perfil o una visualización de datos).

Formato de celdas de código

Azure Databricks proporciona herramientas que permiten dar formato al código de Python y SQL en las celdas de un cuaderno de forma rápida y sencilla. Estas herramientas reducen el esfuerzo de mantener el código con formato y ayudan a aplicar los mismos estándares de codificación en todos los cuadernos.

Formato de las celdas de Python

Importante

Esta característica está en versión preliminar pública.

Azure Databricks permite dar formato al código de Python con Black en el cuaderno. El cuaderno debe estar asociado a un clúster con los paquetes black y tokenize-rt de Python instalados. El formateador Black se ejecuta en el clúster al que está asociado el cuaderno.

En Databricks Runtime 11.3 LTS y versiones posteriores, Azure Databricks preinstala black y tokenize-rt. Puede usar el formateador directamente sin necesidad de instalar estas bibliotecas.

En Databricks Runtime 10.4 LTS y versiones anteriores, debe instalar black==22.3.0 y tokenize-rt==4.2.1 desde PyPI en el cuaderno o el clúster para usar el formateador de Python. Puede ejecutar el siguiente comando en el cuaderno:

%pip install black==22.3.0 tokenize-rt==4.2.1

O instalar la biblioteca en el clúster.

Para obtener más información sobre la instalación de bibliotecas, consulte Administración de entornos de Python.

Para archivos y cuadernos en carpetas de Git de Databricks, puede configurar el formateador de Python en función del archivo pyproject.toml. Para usar esta característica, cree un archivo pyproject.toml en el directorio raíz de la carpeta de Git y configúrelo de acuerdo con el Formato de configuración negro. Edite la sección [tool.black] del archivo. La configuración se aplica cuando se da formato a cualquier archivo y cuaderno en esa carpeta de Git.

Cómo dar formato a las celdas de Python y SQL

Debe tener el permiso PUEDE EDITAR en el cuaderno para dar formato al código.

Puede desencadenar el formateador de las maneras siguientes:

  • Dar formato a una sola celda

    • Método abreviado de teclado: pulse Cmd+Mayús+F.
    • Menú contextual de comandos:
      • Dar formato a una celda SQL: seleccione Dar formato de SQL en el menú contextual desplegable de comandos de una celda de SQL. Este elemento de menú solo es visible en las celdas del cuaderno de SQL o en las que tienen un comando %sqlmagic del lenguaje.
      • Dar formato a una celda de Python: seleccione Dar formato de Python en el menú contextual desplegable de comandos de una celda de Python. Este elemento de menú solo es visible en las celdas del cuaderno de Python o en las que tienen un comando %pythonmagic del lenguaje.
    • Menú Edición del cuaderno: seleccione una celda de Python o de SQL y elija Editar > Dar formato a la celda.
  • Dar formato a varias celdas

    Seleccione varias celdas y elija Editar > Dar formato a celdas SQL. Si selecciona celdas con más de un lenguaje, solo se da formato a las celdas de SQL y Python. Esto incluye las que usan %sql y %python.

  • Dar formato a todas las celdas de Python y SQL del cuaderno

    Seleccione Editar > Dar formato al bloc de notas. Si el cuaderno contiene más de un lenguaje, solo se da formato a las celdas de SQL y Python. Esto incluye las que usan %sql y %python.

Limitaciones del formato de código

  • Black aplica los estándares PEP 8 para la sangría de 4 espacios. La sangría no se puede configurar.
  • No se admite el formato de cadenas de Python insertadas dentro de una UDF de SQL. Asimismo, no se admite el formato de cadenas de SQL dentro de una UDF de Python.

Historial de versiones

Los cuadernos de Azure Databricks mantienen un historial de versiones, lo que le permite ver y restaurar instantáneas anteriores del cuaderno. Puede realizar las acciones siguientes en las revisiones: agregar comentarios, restaurar y eliminar versiones, así como borrar el historial de versiones.

También puede sincronizar el trabajo en Databricks con un repositorio de Git remoto.

Para acceder a las versiones del cuaderno, haga clic en el Icono del historial de versiones en la barra lateral derecha. Aparece el historial de versiones del cuaderno. También puede seleccionar Archivo > Historial de versiones.

Adición de un comentario

Para agregar un comentario a la versión más reciente, realice lo siguiente:

  1. Haga clic en la versión.

  2. Haga clic en Guardar ahora.

    Guardar comentario

  3. En el cuadro de diálogo Guardar revisión del cuaderno, escriba un comentario.

  4. Haga clic en Save(Guardar). La versión del cuaderno se guarda con el comentario especificado.

Restauración de una versión

Para restaurar una versión, realice lo siguiente:

  1. Haga clic en la versión.

  2. Haga clic en Restore this version (Restaurar esta versión).

    Restaurar versión

  3. Haga clic en Confirmar. La versión seleccionada se convierte en la más reciente del cuaderno.

Eliminar una versión

Para eliminar la entrada de una versión:

  1. Haga clic en la versión.

  2. Haga clic en el icono de papelera Papelera.

    Eliminar versión

  3. Haga clic en Yes, erase (Sí, borrar). La versión seleccionada se elimina del historial.

Borrado del historial de versiones

El historial de versiones no se puede recuperar una vez que se haya borrado.

Para borrar el historial de versiones de un cuaderno, haga lo siguiente:

  1. Seleccione Archivo > Borrar historial de versiones.
  2. Haga clic en Yes, clear (Sí, borrar). Se borra el historial de versiones del cuaderno.

Lenguajes de código en cuadernos

Establecimiento del idioma predeterminado

El idioma predeterminado del cuaderno aparece junto a su nombre.

Idioma predeterminado del cuaderno

Para cambiar el idioma predeterminado, haga clic en el botón idioma y seleccione el nuevo idioma en el menú desplegable. Para asegurarse de que los comandos existentes sigan funcionando, los comandos del lenguaje predeterminado anterior tienen como prefijo automáticamente un comando magic de lenguaje.

Combinación de lenguajes

De manera predeterminada, las celdas usan el lenguaje predeterminado del cuaderno. Puede invalidar el idioma predeterminado de una celda haciendo clic en el botón de idioma y seleccionando un idioma en el menú desplegable.

Menú desplegable de lenguaje de celda

Como alternativa, puede usar el comando magic de lenguaje %<language> al comienzo de una celda. Los comandos magic admitidos son %python, %r, %scala y %sql.

Nota:

Cuando se invoca un comando magic de lenguaje, el comando se envía al REPL en el contexto de ejecución del cuaderno. Las variables definidas en un lenguaje (y, por lo tanto, en el REPL de ese lenguaje) no están disponibles en el REPL de otro lenguaje. Los REPL solo pueden compartir el estado mediante recursos externos, como archivos en DBFS u objetos del almacenamiento de objetos.

Los cuadernos también admiten algunos comandos mágicos auxiliares:

  • %sh: le permite ejecutar código del shell en el cuaderno. Para producir un error en la celda si el comando del shell tiene un estado de salida distinto de cero, agregue la opción -e. Este comando solo se ejecuta en el controlador de Apache Spark y no en los roles de trabajo. Para ejecutar un comando del shell en todos los nodos, use un script de inicio.
  • %fs: le permite usar comandos del sistema de archivos dbutils. Por ejemplo, para ejecutar el comando dbutils.fs.ls para enumerar archivos, puede especificar %fs ls en su lugar. Para más información, consulte Trabajar con archivos en Azure Databricks.
  • %md: permite incluir varios tipos de documentación, como texto, imágenes y fórmulas matemáticas y ecuaciones. Consulte la sección siguiente.

Resaltado de sintaxis de SQL y autocompletar en comandos de Python

El resaltado de sintaxis y la característica autocompletar de SQL están disponibles cuando se usa SQL dentro de un comando de Python, como spark.sql.

Exploración de los resultados de las celdas de SQL en cuadernos de Python de forma nativa mediante Python

Es posible que quiera cargar datos mediante SQL y explorarlos mediante Python. En un cuaderno de Python en Databricks, los resultados de una tabla de celdas de lenguaje SQL se ponen automáticamente a disposición como DataFrame de Python asignados a la variable _sqldf.

En Databricks Runtime 13.3 LTS y versiones posteriores, también puede acceder al resultado de DataFrame mediante el Sistema de almacenamiento en caché de salida de IPython. El contador de solicitudes aparece en el mensaje de salida que se muestra en la parte inferior de los resultados de la celda. En el ejemplo que se muestra, se haría referencia al resultado como Out[2].

Nota:

  • La variable _sqldf se puede reasignar cada vez que se ejecuta una celda %sql. Para evitar perder la referencia al resultado de DataFrame, asígnela a un nuevo nombre de variable antes de ejecutar la siguiente celda %sql:

    new_dataframe_name = _sqldf
    
  • Si la consulta usa un widget para la parametrización, los resultados no están disponibles como DataFrame de Python.

  • Si la consulta usa las palabras clave CACHE TABLE o UNCACHE TABLE, los resultados no están disponibles como DataFrame de Python.

En la captura de pantalla se muestra un ejemplo:

Dataframe de resultados de SQL

Ejecución de celdas SQL en paralelo

Mientras se ejecuta un comando y el cuaderno se adjunta a un clúster interactivo, puede ejecutar una celda SQL simultáneamente con el comando actual. La celda SQL se ejecuta en una nueva sesión paralela.

Para ejecutar una celda en paralelo:

  1. Ejecute la celda.

  2. Haga clic en Ejecutar ahora. La celda se ejecuta inmediatamente.

    Ejecutar una celda SQL en paralelo con la celda que se está ejecutando actualmente

Dado que la celda se ejecuta en una nueva sesión, las vistas temporales, las UDF y el DataFrame implícito de Python (_sqldf) no se admiten para las celdas que se ejecutan en paralelo. Además, los nombres predeterminados de catálogo y de base de datos se usan durante la ejecución en paralelo. Si el código hace referencia a una tabla de un catálogo o base de datos diferente, debe especificar el nombre de la tabla mediante el espacio de nombres de tres niveles (catalog.schema.table).

Ejecución de celdas SQL en un almacén SQL

Puedes ejecutar comandos SQL en un libro de Databricks en un almacén SQL, un tipo de cálculo optimizado para análisis SQL. Consulte Uso de un libro con un almacén SQL.

Mostrar imágenes

Para mostrar imágenes almacenadas en FileStore, use la sintaxis:

%md
![test](files/image.png)

Por ejemplo, supongamos que tiene el archivo de la imagen del logotipo de Databricks en FileStore:

dbfs ls dbfs:/FileStore/
databricks-logo-mobile.png

Al incluir el código siguiente en una celda de Markdown:

Imagen en la celda de Markdown

la imagen se representa en la celda:

Imagen representada

Visualización de ecuaciones matemáticas

Los cuadernos admiten KaTeX para mostrar fórmulas y ecuaciones matemáticas. Por ejemplo,

%md
\\(c = \\pm\\sqrt{a^2 + b^2} \\)

\\(A{_i}{_j}=B{_i}{_j}\\)

$$c = \\pm\\sqrt{a^2 + b^2}$$

\\[A{_i}{_j}=B{_i}{_j}\\]

se representa como:

Ecuación 1 representada

y

%md
\\( f(\beta)= -Y_t^T X_t \beta + \sum log( 1+{e}^{X_t\bullet\beta}) + \frac{1}{2}\delta^t S_t^{-1}\delta\\)

where \\(\delta=(\beta - \mu_{t-1})\\)

se representa como:

Ecuación 2 representada

Inclusión de código HTML

Puede incluir código HTML en un cuaderno mediante la función displayHTML. Consulte HTML, D3 y SVG en cuadernos para obtener un ejemplo de cómo hacerlo.

Nota:

El iframe displayHTML se muestra desde el dominio databricksusercontent.com y el espacio aislado del iframe incluye el atributo allow-same-origin. Debe ser capaz de acceder a la dirección databricksusercontent.com desde el explorador. Si actualmente está bloqueada por la red corporativa, se debe agregar a la lista de permitidos.

Puede vincular a otros cuadernos o carpetas en celdas de Markdown mediante rutas de acceso relativas. Especifique el atributo href de una etiqueta delimitadora como la ruta de acceso relativa, empezando por un $ y, a continuación, siga el mismo patrón que en los sistemas de archivos Unix:

%md
<a href="$./myNotebook">Link to notebook in same folder as current notebook</a>
<a href="$../myFolder">Link to folder in parent folder of current notebook</a>
<a href="$./myFolder2/myNotebook2">Link to nested notebook</a>