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. Vea Depuración de cuadernos.
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 objetos de Unity Catalog disponibles para el cuaderno. Haga clic en el situado a la izquierda del cuaderno para abrir el explorador de esquema.
El botón Para usted muestra solo los objetos 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 objetos que contienen el texto que escribe. Solo aparecen los objetos 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, tablas y volúmenes disponibles para el cuaderno.
Para abrir el menú kebab, sitúe el cursor sobre el nombre del objeto, tal y como se muestra:
Si el elemento es un objeto, 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 objeto seleccionado.
- Obtenga la ruta de acceso a un catálogo, esquema o tabla. Seleccione Copiar ... ruta de acceso desde el menú kebab para el objeto.
- Agregue una tabla a Favoritos. Seleccione Agregar objeto a favoritos en el menú kebab de la tabla.
Si el objeto es un catálogo, un esquema o un volumen, puede copiar la ruta de acceso del objeto o abrirlo en Explorador de catálogo.
Para insertar un nombre de tabla o columna directamente en una celda:
- Haga clic en el cursor de la celda en la ubicación en la que desea escribir el nombre.
- Mueva el cursor sobre el nombre de la tabla o el nombre de columna en el explorador de esquema.
- Haga clic en la doble flecha que 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).
Paleta de comandos
Puede realizar acciones rápidamente en el cuaderno mediante la paleta de comandos. Para abrir un panel de acciones de cuaderno, haga clic en en la esquina inferior derecha del área de trabajo, o bien use el acceso directo Cmd + Mayús + P en MacOS o Ctrl + Mayús + P en Windows.
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.
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 o pulse Escape.
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.
Para ejecutar el comando seleccionado El comportamiento de este comando depende del cluster al que esté conectado el portátil.
- 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.
Resalte las líneas que desea ejecutar.
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.
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.
Biblioteca del formateador Black 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 de Python black
y tokenize-rt
instalados.
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.
Azure Databricks usa la biblioteca Gethue/sql-formatter para dar formato a SQL y al formateador de código Black para Python.
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 se puede ver en las celdas del cuaderno de SQL o en las que tienen un
%sql
comando magic 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 se puede ver en las celdas del cuaderno de Python o en las que tienen un
%python
comando magic del lenguaje.
- 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 se puede ver en las celdas del cuaderno de SQL o en las que tienen un
- 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 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:
Haga clic en la versión.
Haga clic en Guardar ahora.
En el cuadro de diálogo Guardar revisión del cuaderno, escriba un comentario.
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:
Haga clic en la versión.
Haga clic en Restore this version (Restaurar esta versión).
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:
Haga clic en la versión.
Haga clic en el icono de papelera .
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:
- Seleccione Archivo > Borrar historial de versiones.
- 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.
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.
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 archivosdbutils
. Por ejemplo, para ejecutar el comandodbutils.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 SQL
En un cuaderno de Databricks, los resultados de una celda del lenguaje SQL se colocan automáticamente disponibles como dataframe implícito asignado a la variable _sqldf
. A continuación, puede usar esta variable en cualquier celda de Python y SQL que ejecute después, independientemente de su posición en el cuaderno.
Nota:
Esta característica tiene las siguientes limitaciones:
- La
_sqldf
variable no está disponible en cuadernos que usan una instancia de SQL Warehouse para el proceso. - El uso
_sqldf
de celdas posteriores de Python se admite en Databricks Runtime 13.3 y versiones posteriores. - El uso
_sqldf
de celdas SQL posteriores solo se admite en Databricks Runtime 14.3 y versiones posteriores. - Si la consulta usa las palabras clave
CACHE TABLE
oUNCACHE TABLE
, la_sqldf
variable no está disponible.
En la captura de pantalla siguiente se muestra cómo _sqldf
se puede usar en las celdas posteriores de Python y SQL:
Importante
La variable _sqldf
se reasigna cada vez que se ejecuta una celda SQL. Para evitar perder la referencia a un resultado de DataFrame específico, asígnelo a un nuevo nombre de variable antes de ejecutar la siguiente celda SQL:
Python
new_dataframe_name = _sqldf
SQL
ALTER VIEW _sqldf RENAME TO new_dataframe_name
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:
Haga clic en Ejecutar ahora. La celda se ejecuta inmediatamente.
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
Azure Databricks admite la visualización de imágenes en celdas de Markdown. Puede mostrar imágenes almacenadas en el área de trabajo, volúmenes o FileStore.
Mostrar imágenes almacenadas en el área de trabajo
Puede usar rutas de acceso absolutas o rutas de acceso relativas para mostrar las imágenes almacenadas en el área de trabajo. Para mostrar las imágenes almacenadas en el área de trabajo, use la sintaxis siguiente:
%md
![my_test_image](/Workspace/absolute/path/to/image.png)
![my_test_image](./relative/path/to/image.png)
Mostrar imágenes almacenadas en volúmenes
Puede usar rutas de acceso absolutas para mostrar imágenes almacenadas en volúmenes. Para mostrar las imágenes almacenadas en volúmenes, use la sintaxis siguiente:
%md
![my_test_image](/Volumes/absolute/path/to/image.png)
Mostrar imágenes almacenadas en FileStore
Para mostrar las imágenes almacenadas en el FileStore, use la sintaxis siguiente:
%md
![my_test_image](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:
la imagen se representa en la celda:
Arrastrar y colocar imágenes
Puede arrastrar y colocar imágenes desde el sistema de archivos local en celdas de Markdown. La imagen se carga en el directorio del área de trabajo actual y se muestra en la celda.
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:
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:
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.
Vínculo a otros cuadernos
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>