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, consulta Navegar por el cuaderno de Databricks y el editor de archivos.
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.
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.
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.
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.