Desarrollo, ejecución y administración de cuadernos de Microsoft Fabric

Microsoft Fabric Notebook es un elemento de código principal para desarrollar trabajos de Apache Spark y experimentos de aprendizaje automático. Se trata de una superficie interactiva basada en web que usan científicos de datos e ingenieros de datos para escribir código que se beneficie de visualizaciones enriquecidas y texto de Markdown. En este artículo se explica cómo desarrollar cuadernos con operaciones de celda de código y ejecutarlos.

Importante

Microsoft Fabric se encuentra actualmente en versión preliminar. Esta información está relacionada con un producto en versión preliminar que puede modificarse considerablemente antes de su lanzamiento. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información que se ofrece aquí.

Desarrollo de cuadernos

Los cuadernos se componen de celdas, que son bloques individuales de código o texto que se pueden ejecutar de manera independiente o en grupo.

Proporcionamos operaciones enriquecidas para desarrollar cuadernos:

Adición de una celda

Hay varias maneras de agregar una nueva celda a un cuaderno.

  1. Mantenga el puntero sobre el espacio entre dos celdas y seleccione Código o Markdown.

  2. Utilice las teclas de método abreviado en el modo de comando. Presione A para insertar una celda sobre la celda actual. Presione B para insertar una celda debajo de la celda actual.

Definición del lenguaje principal

Actualmente, los cuadernos de Microsoft Fabric admiten cuatro lenguajes de Apache Spark:

  • PySpark (Python)
  • Spark (Scala)
  • Spark SQL
  • SparkR

Desde la lista desplegable de la barra de comandos superior, puede establecer el lenguaje principal para las nuevas celdas que se agreguen.

Uso de varios lenguajes

Puede usar varios idiomas en un cuaderno especificando el comando magic de idioma al principio de una celda, también puede cambiar el idioma de la celda desde el selector de idioma. En la tabla siguiente se enumeran los comandos magic para cambiar el lenguaje de las celdas.

Captura de pantalla que muestra un ejemplo del comando magic de idioma especificado al principio de una celda.

Comando magic Lenguaje Descripción
%%pyspark Python Ejecute una consulta de Python en SparkContext.
%%spark Scala Ejecute una consulta de Scala en SparkContext.
%%sql SparkSQL Ejecute una consulta de SparkSQL en SparkContext.
%%html Html Ejecute una consulta HTML en el contexto de Spark.
%%sparkr R Ejecute una consulta de R en SparkContext.

La siguiente imagen es un ejemplo de cómo puede escribir una consulta de PySpark mediante el comando mágico %%pyspark en un cuaderno de Spark(Scala). Observe que el idioma principal del cuaderno está establecido en PySpark.

IntelliSense de estilo IDE

Los cuadernos de Microsoft Fabric se integran con el editor Monaco para llevar IntelliSense de estilo IDE al editor de celdas. El resaltado de la sintaxis, el marcador de errores y la finalización automática de código le ayudan a escribir código y a identificar problemas más rápido.

Las características de IntelliSense tienen distintos niveles de madurez para distintos lenguajes. En la tabla siguiente se muestra lo que se admite:

Idiomas Resaltado de sintaxis Creador de errores de sintaxis Finalización de código de sintaxis Finalización de código de sintaxis Finalización de código de funciones del sistema Finalización de código de funciones del usuario Sangría inteligente Plegado de código
PySpark (Python)
Spark (Scala)
SparkSQL No
SparkR

Nota

Se requiere una sesión de Spark activa para usar la finalización del código de IntelliSense.

Fragmentos de código

Los cuadernos de Microsoft Fabric proporcionan fragmentos de código que le ayudan a escribir fácilmente patrones de código usados habitualmente, como:

  • Lectura de datos como dataframe de Spark o
  • Dibujar gráficos con Matplotlib.

Los fragmentos de código aparecen en teclas de método abreviado de IntelliSense estilo IDE combinados con otras sugerencias. El contenido de los fragmentos de código se alinea con el lenguaje de las celdas de código. Para ver los fragmentos de código disponibles, escriba snippet o cualquier palabra clave que aparezca en el título del fragmento de código en el editor de celdas de código. Por ejemplo, si escribe read, puede ver la lista de fragmentos de código para leer datos de varios orígenes de datos.

GIF animado de fragmentos de código.

Arrastrar y colocar para insertar fragmentos de código

Puede usar arrastrar y colocar para leer datos del explorador de Lakehouse de forma cómoda. Aquí se admiten varios tipos de archivo, puede operar en archivos de texto, tablas, imágenes, etc. Puede colocar en una celda existente o en una nueva celda. El cuaderno genera el fragmento de código según corresponda para obtener una vista previa de los datos.

GIF animado de arrastrar y colocar para insertar fragmentos de código.

Arrastrar y colocar para insertar imágenes

Puede usar arrastrar y colocar para insertar imágenes desde el explorador o el equipo local a una celda markdown cómodamente.

GIF animado de arrastrar y colocar para insertar imágenes.

Formato de celdas de texto con botones de la barra de herramientas

Puede usar los botones de formato en la barra de herramientas de celdas de texto para completar acciones comunes de marcado.

Captura de pantalla de la barra de herramientas de formato de texto.

Operación deshacer o rehacer celda

Seleccione el botón Deshacer o Rehacer, o presione Z o Mayús+Z para revocar las operaciones de celda más recientes. Puede deshacer o rehacer hasta las últimas 10 operaciones históricas de celdas.

Captura de pantalla que muestra las opciones de menú deshacer y rehacer.

Operaciones de deshacer celda admitidas:

  • Insertar o eliminar celda: puede revocar las operaciones de eliminación seleccionando Deshacer, el contenido del texto se mantiene junto con la celda.
  • Reordenar celda.
  • Alternar parámetros.
  • Convertir entre la celda de código y la celda Markdown.

Nota:

Las operaciones de texto en celda y las operaciones de comentarios de celda de código no se pueden deshacer. Puede deshacer o rehacer hasta las últimas 10 operaciones históricas de celdas.

Movimiento de una celda

Puede arrastrar desde la parte vacía de una celda y colocarla en la posición deseada.

También puede mover la celda seleccionada mediante Subir y Bajar en la cinta de opciones.

Captura de pantalla que muestra las opciones para mover una celda.

Eliminación de una celda

Para eliminar una celda, seleccione el botón Eliminar en la parte derecha de la celda.

También puede utilizar las teclas de método abreviado en el modo de comando. Presione Mayús+D para eliminar la celda actual.

Contracción de una entrada de celda

Seleccione los puntos suspensivos de Más comandos (...) en la barra de herramientas de la celda y en Hide input (Ocultar entrada) para contraer la entrada de la celda actual. Para expandirla, seleccione Show input (Mostrar entrada) mientras la celda está contraída.

Contracción de una salida de celda

Seleccione los puntos suspensivos de Más comandos (...) en la barra de herramientas de la celda y en Hide output (Ocultar salida) para contraer la salida de la celda actual. Para expandirla, seleccione Show output (Mostrar salida) mientras la salida de la celda está oculta.

Bloquear o inmovilizar una celda

Las operaciones de bloqueo e inmovilización de celdas permiten hacer que las celdas de solo lectura o detengan que las celdas de código se ejecuten en una celda individual.

GIF animado de bloqueo o inmovilización de una celda.

Contenido del cuaderno

Los esquemas o la tabla de contenido presentan el primer encabezado markdown de cualquier celda markdown en una ventana de barra lateral para la navegación rápida. La barra lateral Esquemas es redimensionable y contraíble para ajustarse a la pantalla de la mejor manera posible. Puede seleccionar el botón Contenido de la barra de comandos del cuaderno para abrir u ocultar la barra lateral.

Captura de pantalla que muestra dónde seleccionar la opción Contenido.

Plegado de Markdown

El plegado markdown permite ocultar celdas debajo de una celda markdown que contiene un encabezado. La celda Markdown y sus celdas ocultas se tratan igual que un conjunto de celdas contiguas seleccionadas con múltiples selecciones al realizar operaciones de celda. GIF animado de plegado markdown.

Buscar y reemplazar

Buscar y reemplazar puede ayudarle a buscar y buscar fácilmente las palabras clave o expresión en el contenido del cuaderno, y puede reemplazar la cadena de destino por una nueva cadena.

Captura de pantalla que muestra el panel buscar y reemplazar.

Ejecución de cuadernos

Puede ejecutar las celdas de código en el cuaderno individualmente o todas a la vez. El estado y el progreso de cada celda se representan en el cuaderno.

Ejecución de una celda

Hay varias maneras de ejecutar el código de una celda.

  1. Mantenga el puntero sobre la celda que desea ejecutar y seleccione el botón Ejecutar celda o presione CTRL+Entrar.

  2. Utilice las teclas de método abreviado en el modo de comando. Presione Mayús+Entrar para ejecutar la celda actual y seleccione la celda siguiente. Presione Alt+Entrar para ejecutar la celda actual e insertar una nueva celda.

Ejecución de todas las celdas

Seleccione el botón Ejecutar todo para ejecutar todas las celdas del cuaderno actual en secuencia.

Ejecución de todas las celdas encima o debajo

Expanda la lista desplegable en el botón Ejecutar todo y, a continuación, seleccione Run cells above (Ejecutar las celdas encima) para ejecutar todas las celdas situadas encima de la actual en secuencia. Seleccione Ejecutar celdas debajo para ejecutar la celda actual y todas las celdas debajo de la actual en secuencia.

Captura de pantalla que muestra las opciones de menú Ejecutar todas.

Cancelación de todas las celdas en ejecución

Seleccione el botón Cancelar todo para cancelar las celdas en ejecución o las celdas que esperan en la cola.

Detener sesión

Detener sesión cancela las celdas en ejecución y en espera y detiene la sesión actual, puede reiniciar una nueva sesión si hace clic de nuevo en el botón Ejecutar.

Captura de pantalla que muestra dónde seleccionar Cancelar todas las ejecuciones y detener una sesión.

Ejecución de referencia del cuaderno

Además de usar la API de ejecución de referencia mssparkutils , también puede usar %run <notebook name> el comando magic para hacer referencia a otro cuaderno dentro del contexto del cuaderno actual. Todas las variables definidas en el cuaderno de referencia están disponibles en el cuaderno actual. El comando magic %run admite llamadas anidadas pero no admite llamadas recursivas. Recibirá una excepción si la profundidad de la instrucción es mayor que cinco.

Ejemplo: %run Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }.

La referencia del cuaderno funciona en modo interactivo y canalización.

Nota:

  • %run el comando actualmente solo admite cuadernos de referencia que en la misma área de trabajo con el cuaderno actual.
  • %run Actualmente, command solo admite 4 tipos de valor de parámetro: int, float, bool, string, no se admite la operación de reemplazo de variables.
  • %run el comando no admite referencia anidada que la profundidad sea mayor que cinco.

Explorador de variables

El cuaderno de Microsoft Fabric proporciona un explorador de variables integrado para ver la lista de variables nombre, tipo, longitud y valor en las celdas actuales de Spark para PySpark (Python). Más variables se muestran automáticamente a medida que se definen en las celdas de código. Al hacer clic en cada encabezado de columna, se ordenan las variables de la tabla.

Puede seleccionar el botón Variables de la pestaña "Ver" de la cinta de cuadernos para abrir u ocultar el explorador de variables.

Captura de pantalla que muestra dónde abrir variables.

Nota

El explorador de variables solo admite Python.

Indicador de estado de la celda

Debajo de la celda se muestra un estado de ejecución detallado de la celda para ayudarle a ver su progreso actual. Una vez completada la ejecución de la celda, se muestra un resumen de ejecución con la duración total y la hora de finalización y se almacena allí para futuras referencias.

Captura de pantalla que muestra un ejemplo de detalles de estado de ejecución de celda.

Indicador de trabajo de Spark en línea

El cuaderno de Microsoft Fabric se basa en Spark. Las celdas de código se ejecutan en el clúster de Spark de forma remota. Aparece un indicador de progreso del trabajo de Spark con una barra de progreso en tiempo real que le ayudará a entender el estado de ejecución del trabajo. El número de tareas por cada trabajo o etapa ayuda a identificar el nivel paralelo del trabajo de Spark. También puede profundizar en la interfaz de usuario de Spark de un trabajo o fase específicos a través de la selección del vínculo del nombre del trabajo o de la fase.

También puede encontrar el registro en tiempo real de nivel de celda junto al indicador de progreso y Diagnósticos puede proporcionarle sugerencias útiles para ayudar a refinar y depurar el código.

Captura de pantalla de los detalles del progreso de los trabajos de Spark.

En Más acciones, puede navegar fácilmente a la página de detalles de la aplicación Spark y a la página de la interfaz de usuario web de Spark . Captura de pantalla de detalles de más acciones.

Redacción de secreto

Para evitar que las credenciales se filtren accidentalmente al ejecutar cuadernos, el cuaderno de Fabric admite la redacción secreta para reemplazar los valores de secreto que se muestran en la salida de la celda por [REDACTED], la reacción secreta es aplicable a Python, Scala y R.

Captura de pantalla de la redacción secreta.

Comandos mágicos en el cuaderno

Magias integradas

Puede usar comandos mágicos de Ipython conocidos en cuadernos de Fabric. Revise la lista siguiente para ver los comandos magic disponibles actualmente.

Nota:

Solo se admiten los siguientes comandos mágicos en la canalización de Fabric: %%pyspark, %%spark, %%csharp, %%sql.

Magics de línea disponibles: %lsmagic, %time, %timeit, %history, %run, %load, %alias, %alias_magic, %autoawait, %autocall, %automagic, %bookmark, %cd, %colors, %dhist, %dirs, %doctest_mode, %killbgscripts, %load_ext, %load_ext, %logoff, %logon, %logstart, %logstate, %logstop, %magic, %matplotlib, %page, %pastebin, %pdef, %pfile, %pinfo, %pinfo2, %popd, %pprint, %precision, %prun, %psearch, %psource, %pushd, %pwd, %pycat, %quickref, %rehashx, %reload_ext, %reset, %reset_selective, %sx, %system, %tb, %unalias, %unload_ext, %who, %who_ls, %who's, %xdel, %xmode.

El cuaderno de Fabric también admite comandos de administración de bibliotecas mejorados %pip, %conda, consulte Administración de bibliotecas de Apache Spark en Microsoft Fabric para el uso.

Magics de celda disponibles: %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%html, %%bash, %%markdown, %%perl, %%script, %%sh.

Magias personalizadas

También puede crear más comandos mágicos personalizados para satisfacer sus necesidades específicas, como se muestra en el ejemplo siguiente.

  1. Cree un cuaderno con el nombre "MyLakehouseModule".

Captura de pantalla de la definición de una magia personalizada.

  1. En otro cuaderno, haga referencia a "MyLakehouseModule" y sus comandos mágicos, de esta manera puede organizar el proyecto con cuadernos que usan diferentes lenguajes cómodamente.

Captura de pantalla del uso de magia personalizada.

Widgets de IPython

Los widgets de IPython son objetos de Python con eventos que tienen una representación en el explorador. Puede usar widgets de IPython como controles de poco código (por ejemplo, control deslizante, cuadro de texto) en el cuaderno igual que el cuaderno de Jupyter, actualmente solo funciona en el contexto de Python.

Para usar el widget de IPython

  1. Primero debe importar el módulo ipywidgets para usar el marco del widget de Jupyter.

    import ipywidgets as widgets
    
  2. Puede usar la función de visualización de nivel superior para representar un widget o dejar una expresión de tipo widget en la última línea de celda de código.

    slider = widgets.IntSlider()
    display(slider)
    
  3. Ejecute la celda y el widget se muestra en el área de salida.

    slider = widgets.IntSlider()
    display(slider)
    

    Captura de pantalla del widget que se muestra en el área de salida.

  4. Puede usar varias llamadas display() para representar la misma instancia de widget varias veces, pero permanecen sincronizadas entre sí.

    slider = widgets.IntSlider()
    display(slider)
    display(slider)
    

    Captura de pantalla que muestra varias veces un widget.

  5. Para representar dos widgets independientes entre sí, cree dos instancias de widget:

    slider1 = widgets.IntSlider()
    slider2 = widgets.IntSlider()
    display(slider1)
    display(slider2)
    

    Captura de pantalla que muestra varias instancias de widgets.

Widgets admitidos

Tipo de widgets Widgets
Widgets numéricos IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText
Widgets booleanos ToggleButton, Checkbox, Valid
Widgets de selección Dropdown, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple
Widgets de cadena Text, Text area, Combobox, Password, Label, HTML, HTML Math, Image, Button
Widgets de reproducción (animación) Date picker, Color picker, Controller
Widgets de contenedor o diseño Box, HBox, VBox, GridBox, Accordion, Tabs, Stacked

Limitaciones conocidas

  1. Todavía no se admiten los siguientes widgets, podría seguir la solución alternativa correspondiente de la siguiente manera:

    Funcionalidad Solución alternativa
    Widget de salida Puede usar la función print() en su lugar para escribir texto en stdout.
    widgets.jslink() Puede usar widgets.link() función para vincular dos widgets similares.
    Widget FileUpload Aún no se admite.
  2. La función de visualización global proporcionada por Microsoft Fabric no admite la visualización de varios widgets en una llamada (es decir, display(a, b)), que es diferente de la función de visualización de IPython.

  3. Si cierra un cuaderno que contiene el widget de IPython, no podrá verlo ni interactuar con él hasta que vuelva a ejecutar la celda correspondiente.

Registro de Python en Notebook

Puede encontrar registros de Python y establecer diferentes niveles de registro y formato como el código de ejemplo que se muestra aquí:

import logging

# Customize the logging format for all loggers
FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
formatter = logging.Formatter(fmt=FORMAT)
for handler in logging.getLogger().handlers:
    handler.setFormatter(formatter)

# Customize log level for all loggers
logging.getLogger().setLevel(logging.INFO)

# Customize the log level for a specific logger
customizedLogger = logging.getLogger('customized')
customizedLogger.setLevel(logging.WARNING)

# logger that use the default global log level
defaultLogger = logging.getLogger('default')
defaultLogger.debug("default debug message")
defaultLogger.info("default info message")
defaultLogger.warning("default warning message")
defaultLogger.error("default error message")
defaultLogger.critical("default critical message")

# logger that use the customized log level
customizedLogger.debug("customized debug message")
customizedLogger.info("customized info message")
customizedLogger.warning("customized warning message")
customizedLogger.error("customized error message")
customizedLogger.critical("customized critical message")

Integración de un cuaderno

Designación de una celda de parámetros

Para parametrizar el cuaderno, seleccione los puntos suspensivos (...) para obtener acceso a más comandos en la barra de herramientas de la celda. A continuación, seleccione Toggle parameter cell (Alternar celda de parámetros) para designar la celda como la celda de parámetros.

Captura de pantalla que muestra dónde seleccionar la opción Alternar celda de parámetro.

La celda de parámetros es útil para integrar cuadernos en la canalización, la actividad de canalización busca la celda de parámetros y trata esta celda como valores predeterminados para los parámetros pasados en tiempo de ejecución. El motor de ejecución agrega una nueva celda debajo de la celda parameters con parámetros de entrada para sobrescribir los valores predeterminados.

Teclas de método abreviado

De forma similar a jupyter Notebooks, los cuadernos de Microsoft Fabric tienen una interfaz de usuario modal. El teclado realiza diferentes acciones en función del modo en que se encuentre la celda del cuaderno. Los cuadernos de Microsoft Fabric admiten los dos modos siguientes para una celda de código determinada: modo de comando y modo de edición.

  1. Una celda se encuentra en modo de comando cuando no hay ningún cursor de texto que le pida que escriba. Cuando una celda está en modo de comando, puede editar el cuaderno en su conjunto, pero no escribir en celdas individuales. Escriba el modo de comando presionando ESC o usando el mouse para seleccionar fuera del área del editor de una celda.

    Captura de pantalla de una celda en modo de comando.

  2. El modo de edición se puede indicar desde un cursor de texto que le pide que escriba en el área del editor. Cuando una celda se encuentra en modo de edición, puede escribir en la celda. Escriba el modo de edición presionando Entrar o usando el mouse para seleccionar en el área del editor de una celda.

    Captura de pantalla de una celda en modo de edición.

Teclas de método abreviado en el modo de comando

Acción Métodos abreviados de cuaderno
Ejecutar la celda actual y seleccionar la que está a continuación Mayús+Entrar
Ejecutar la celda actual e insertar una a continuación Alt+Entrar
Ejecutar celda actual Ctrl+Entrar
Seleccionar la celda anterior Arriba
Seleccionar la celda siguiente Bajar
Seleccionar celda anterior K
Seleccionar celda siguiente J
Insertar una celda encima A
Insertar una celda debajo B
Eliminar celdas seleccionadas Mayús + D
Cambiar al modo de edición Escriba

Teclas de método abreviado en el modo de edición

Con los siguientes métodos abreviados de pulsación de tecla, puede navegar y ejecutar código con mayor facilidad en cuadernos de Microsoft Fabric cuando se encuentra en modo de edición.

Acción Métodos abreviados de cuaderno
Subir el cursor Arriba
Bajar el cursor Bajar
Deshacer CTRL+Z
Rehacer CTRL+Y
Comentario o comentario CTRL+/
Eliminar palabra anterior CTRL+Retroceso
Eliminar palabra posterior CTRL+Supr
Ir al inicio de la celda CTRL+Inicio
Ir al final de la celda CTRL+Fin
Ir una palabra a la izquierda CTRL+Izquierda
Ir una palabra a la derecha CTRL+Derecha
Seleccionar todo CTRL+A
Aplicar sangría CTRL+]
Desaplicar sangría CTRL+[
Cambiar al modo de comando Esc

Puede encontrar fácilmente todas las teclas de método abreviado desde la vista de cinta de cuadernos View ->Keybindings.

Pasos siguientes