Compartir a través de


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

El cuaderno de Microsoft Fabric 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 la web que usan los 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 y ejecutar cuadernos con operaciones de celda de código.

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 encima de la celda actual. Presione B para insertar una celda debajo de la celda actual.

Definición del lenguaje principal

Actualmente, los cuadernos de 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

Puedes usar varios lenguajes en un cuaderno especificando el comando magic de lenguaje al principio de una celda. También puedes cambiar el idioma de la celda desde el selector de idioma. En la tabla siguiente se enumeran los comandos mágicos para cambiar el idioma de las celdas.

Captura de pantalla que muestra un ejemplo del comando mágico de idioma introducido al principio de una celda.

Comando mágico Idioma Descripción
%%pyspark Pitón Ejecute una consulta de Python en el contexto de Apache Spark.
%%spark Scala Ejecute una consulta de Scala en el contexto de Apache Spark.
%%sql SparkSQL Ejecute una consulta de SparkSQL en el contexto de Apache Spark.
%%html HTML Ejecute una consulta HTML en el contexto de Apache Spark.
%%sparkr R Ejecute una consulta de R en el contexto de Apache Spark.

IntelliSense de estilo IDE

Los cuadernos de Fabric se integran en el editor Monaco para incluir IntelliSense de estilo IDE en el editor de celdas. El resaltado de la sintaxis, el marcador de errores y la finalización automática de código 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 Fabric admite:

Idiomas Resaltado de sintaxis Marcador de error de sintaxis Finalización del código de sintaxis Finalización de código variable Finalización del código de función del sistema Finalización del código de función de usuario Sangría inteligente Plegado de código
PySpark (Python)
Pitón
Spark (Scala)
SparkSQL No
SparkR
T-SQL No

Nota:

Debes tener una sesión de Apache Spark activa para usar la finalización del código de IntelliSense.

Mejora del desarrollo de Python con Pylance

Nota:

Actualmente, la característica está en versión preliminar.

Pylance, un servidor de lenguaje eficaz y enriquecido con características, ahora está disponible en el cuaderno Fabric. Pylance facilita el desarrollo de Python con finalizaciones inteligentes, mejor detección de errores e información de código mejorada. Entre las mejoras clave se incluyen autocompletar más inteligente, compatibilidad con lambda mejorada, sugerencias de parámetros, información de desplazamiento mejorada, mejor representación de docstring y resaltado de errores. Con Pylance, escribir código de Python y PySpark se vuelve más rápido, más preciso y eficaz.

Fragmentos de código

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

  • Leer datos como un DataFrame de Apache Spark
  • 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. Los contenidos de los fragmentos de código se alinean con el lenguaje de las celdas de código. Para ver fragmentos de código disponibles, escriba Fragmento de código. También se puede escribir cualquier palabra clave para ver una lista de fragmentos de código pertinentes. Por ejemplo, si escribe lectura, 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

Puedes arrastrar y colocar para leer los datos del explorador de Lakehouse de forma cómoda. Se admiten varios tipos de archivo aquí; puedes operar en archivos de texto, tablas, imágenes, etc. Puedes colocarlos en una celda existente o en una nueva. El cuaderno genera el fragmento de código correspondiente 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

Arrastre y suelte para insertar fácilmente imágenes desde su navegador o computadora local en una celda de Markdown.

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

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

Para completar acciones comunes de Markdown, se usan los botones de formato de la barra de herramientas de celda de texto.

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

Deshacer o rehacer una operación de una celda

Selecciona el botón Deshacer, 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 la celda.

Captura de pantalla que muestra las opciones del menú Deshacer y Rehacer.

Operaciones de deshacer celda admitidas:

  • Insertar o eliminar una fila. Puede revocar las operaciones eliminadas 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 de Markdown.

Nota:

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

Movimiento de una celda

Puede arrastrar desde la parte vacía de una celda y colocar 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, selecciona el botón de eliminar en la parte derecha de la celda.

También puede usar teclas de acceso rápido en modo de comando. Presione Mayús+D para eliminar la celda actual.

Contracción de una entrada de celda

Selecciona los puntos suspensivos (...) de Más comandos en la barra de herramientas de la celda y en Ocultar entrada para contraer la entrada de la celda actual. Para expandirla de nuevo, selecciona Mostrar entrada mientras la celda está contraída.

Contracción de una salida de celda

Selecciona los puntos suspensivos (...) de Más comandos en la barra de herramientas de la celda y en Ocultar salida para contraer la salida de la celda actual. Para expandirla de nuevo, selecciona Mostrar entrada mientras la salida de la celda está contraída.

Seguridad de salida de celda

Con los roles de acceso a datos de OneLake (versión preliminar), los usuarios pueden configurar solo el acceso a carpetas específicas de un almacén de lago durante las consultas de cuadernos. Los usuarios sin acceso a una carpeta o tabla ven un error no autorizado durante la ejecución de la consulta.

Importante

La seguridad solo se aplica durante la ejecución de consultas y los usuarios que no tienen autorización para ejecutar consultas directamente en los datos pueden ver las celdas de cuaderno que contengan los resultados de la consulta.

Bloquear o inmovilizar una celda

Las operaciones de bloqueo e inmovilización de celdas permiten convertir las celdas a solo lectura o detener la ejecución de las celdas de código en una celda individual.

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

Combinar y dividir celdas

Puede usar Combinar con celda anterior o Combinar con la siguiente celda para combinar las celdas relacionadas cómodamente.

Al seleccionar Dividir celda , puede dividir instrucciones irrelevantes en varias celdas. La operación divide el código según la posición de la línea del cursor.

Captura de pantalla que muestra la introducción de la combinación de celdas divididas.

Contenido del cuaderno

Al seleccionar una opción de Esquemas o Tabla de Contenidos, se muestra el primer encabezado de cualquier celda de markdown en una ventana lateral para facilitar la navegación rápida. La barra lateral Esquemas es redimensionable y contraíble para ajustarse a la pantalla de la mejor manera posible. Seleccione 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 de Markdown permite ocultar celdas debajo de una celda de Markdown que contenga un encabezado. La celda de Markdown y sus celdas ocultas se tratan igual que un conjunto de celdas contiguas con múltiples selecciones al realizar las operaciones de celda.

GIF animado de plegado de Markdown.

Buscar y reemplazar

La opción buscar y reemplazar puede ayudar a buscar y ubicar las palabras clave o expresiones dentro del contenido del cuaderno. También puedes reemplazar fácilmente la cadena de destino por una nueva cadena.

Captura de pantalla que muestra el panel buscar y reemplazar.

Finalización en línea de código de Copilot (versión preliminar)

La finalización de código en línea de Copilot es una característica con tecnología de inteligencia artificial que le ayuda a escribir código de Python de forma más rápida y eficaz en los Fabric Notebooks. Esta característica proporciona sugerencias de código inteligentes y compatibles con contexto a medida que escribe código. Reduce las tareas repetitivas, minimiza los errores de sintaxis y acelera el desarrollo mediante la integración sin problemas en el flujo de trabajo del cuaderno.

Ventajas clave

  • Finalizaciones controladas por IA: Genera sugerencias basadas en el contexto del cuaderno mediante un modelo entrenado en millones de líneas de código.
  • Aumenta la productividad: Ayuda a escribir funciones complejas, reduce la codificación repetitiva y acelera la exploración de bibliotecas desconocidas.
  • Reduce los errores: Minimiza los errores tipográficos y de sintaxis con finalizaciones inteligentes y compatibles con el contexto.
  • Configuración mínima: Integrado en cuadernos de Fabric, no requiere ninguna instalación. Solo puede habilitarlo e iniciar la codificación.

Cómo funciona

Habilite las sugerencias de código en línea usando el interruptor en la parte inferior del cuaderno. A medida que escribe, las sugerencias aparecen en texto gris claro, presione la pestaña para aceptar o modificar. Las sugerencias se basan en las celdas anteriores del cuaderno.

Captura de pantalla que muestra cómo habilitar finalizaciones de código de Copilot.

Captura de pantalla que muestra la sugerencia de código automática con la finalización del código de Copilot.

Nota:

Al activar la finalización de código en línea de Copilot, se consumirán unidades de capacidad adicionales.

Limitaciones actuales

  • La función de autocompletado de código en línea de Copilot admite actualmente el lenguaje Python y aprovecha el contexto de las celdas anteriores y los esquemas de Lakehouse.
  • Las sugerencias consideran los datos de los esquemas de Lakehouse.
  • Solo se usa un subconjunto de elementos de esquema cuando hay muchas tablas o columnas.
  • Las tablas creadas dinámicamente (a través de Spark) no se reconocen en tiempo real.

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.

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

  • 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 de Ejecutar todo, luego seleccione Ejecutar celdas arriba para ejecutar en secuencia todas las celdas situadas encima de la actual. Seleccione Ejecutar celdas a continuación para ejecutar la celda actual y todas las celdas debajo de la actual en secuencia.

Recorte de pantalla en la que se muestra las opciones del menú Ejecutar todo.

Cancelación de todas las celdas en ejecución

Seleccione Cancelar todo para cancelar las celdas en ejecución o las celdas que están esperando en la cola.

Detener sesión

Detener sesión cancela las celdas en ejecución y en espera y detiene la sesión actual. Para reiniciar una nueva sesión, vuelve a seleccionar el botón Ejecutar.

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

Referencia de ejecución

Referencia de ejecución de un cuaderno

Además de la API de ejecución de referencia de notebookutils, también puede usar el %run <notebook name> comando mágico 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 superior a cinco.

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

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

Nota:

  • El comando %run actualmente solo admite cuadernos de referencia en la misma área de trabajo con el cuaderno actual.
  • Actualmente, el comando %run solo admite hasta cuatro tipos de valor de parámetro: int, float, booly string. No se admite la operación de reemplazo de variables.
  • El %run comando no admite referencia anidada con una profundidad superior a cinco.

Referencia de ejecución de un script

El comando %run también permite ejecutar archivos de Python o SQL almacenados en los recursos integrados del cuaderno, por lo que puedes ejecutar los archivos de código fuente en el cuaderno de forma cómoda.

%run [-b/--builtin -c/--current] [script_file.py/.sql] [variables ...]

Opciones:

  • -b/--builtin: esta opción indica que el comando busca y ejecuta el archivo de script especificado desde los recursos integrados del cuaderno.
  • -c/--current: esta opción garantiza que el comando use siempre los recursos integrados del cuaderno actual, aunque otros cuadernos hagan referencia al cuaderno actual.

Ejemplos:

  • Para ejecutar script_file.py desde los recursos integrados: %run -b script_file.py

  • Para ejecutar script_file.sql desde los recursos integrados: %run -b script_file.sql

  • Para ejecutar script_file.py desde los recursos integrados con variables específicas: %run -b script_file.py { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }

Nota:

Si el comando no contiene -b/--builtin, intenta buscar y ejecutar el elemento de cuaderno dentro del mismo área de trabajo en lugar de los recursos integrados.

Ejemplo de uso para el caso de ejecución anidado:

  • Supongamos que tenemos dos cuadernos.
    • Notebook1: contiene script_file1.py en sus recursos integrados
    • Notebook2: contiene script_file2.py en sus recursos integrados
  • Vamos a usar Notebook1 como cuaderno raíz con el contenido: %run Notebook2.
  • A continuación, en notebook2 , la instrucción de uso es:
    • Para ejecutar script_file1.py en Notebook1 (el cuaderno raíz), el código sería: %run -b script_file1.py
    • Para ejecutar script_file2.py en Notebook2 (el cuaderno actual), el código sería: %run -b -c script_file2.py

Explorador de variables

Los cuadernos de Fabric incluyen un explorador de variables integrado que muestra la lista de nombre, tipo, longitud y valor de las variables en la sesión actual de Spark para las celdas de PySpark (Python). Se mostrarán automáticamente más variables a medida que se definan en las celdas de código. Al hacer clic en cada encabezado de columna se ordenarán las variables de la tabla.

Para abrir u ocultar el explorador de variables, selecciona Variables en la cinta de opciones del cuaderno Vista.

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, aparece un resumen de ejecución con la duración total y la hora de finalización y se almacena allí para referencia futura.

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

Indicador de estado de sesión

Configuración del tiempo de espera de sesión

En la esquina inferior izquierda, puede seleccionar el estado de la sesión para obtener más información sobre la sesión actual:

Captura de pantalla que muestra información de sesión.

En el elemento emergente, hay una opción para restablecer el tiempo de espera a x minutos o horas.

Captura de pantalla que muestra el tiempo de espera de sesión.

Tome la selección durante cuánto tiempo desea una sesión ininterrumpida y presione aplicar. El tiempo de espera de la sesión se restablece con el nuevo valor y ¡ya está listo para continuar!

También puede establecer el tiempo de espera tal y como se describe en:

Mantener la sesión iniciada: Durante el inicio de sesión, si ve el cuadro de diálogo Mantener sesión iniciada , seleccione para desactivar el tiempo de espera de la sesión inactiva para la sesión actual.

Importante

No active la casilla No volver a mostrar esto , ya que esto bloqueará la configuración de inicio de sesión de forma permanente. Tenga en cuenta que es posible que esta opción no aparezca si el administrador del inquilino ha deshabilitado la configuración Mantener la sesión iniciada (KMSI).

Solicitar un cambio de directiva: Si necesita una duración de sesión más larga, pida al administrador del inquilino que extienda la directiva de duración de tiempo de espera de la sesión inactiva. Puede hacer esto navegando a Configuración de la organización > Seguridad y Privacidad > Tiempo de espera de la sesión inactiva dentro del Centro de administración de M365.

Nota:

La selección de KMSI y/o la extensión del tiempo de espera de la sesión inactiva incrementará el riesgo de que se acceda a una máquina desbloqueada.

¿Cómo afectan el ABT y el tiempo de espera de sesión inactiva a las ejecuciones prolongadas de Fabric Notebook?

Si su inquilino utiliza el tiempo de espera basado en la actividad (ABT), los trabajos interactivos de larga duración en cuadernos de Fabric pueden verse afectados por la política de tiempo de espera de sesión inactiva de Microsoft 365. Esta característica de seguridad está diseñada para cerrar la sesión de los usuarios en dispositivos inactivos y no administrados, incluso si todavía se está ejecutando un trabajo de cuaderno. Aunque la actividad en otras aplicaciones de Microsoft 365 puede mantener activa la sesión, los dispositivos inactivos se cerrarán por diseño.

¿Por qué los usuarios han cerrado la sesión incluso cuando todavía se está ejecutando un trabajo de cuaderno?

El tiempo de espera para sesiones inactivas prioriza la seguridad cerrando las sesiones en dispositivos inactivos a fin de prevenir el acceso no autorizado. Incluso cuando una ejecución del cuaderno está en curso, la sesión finaliza si el dispositivo no muestra ninguna actividad. Mantener las sesiones abiertas en dispositivos inactivos comprometería la seguridad, por lo que se aplica el comportamiento actual.

Indicador de trabajos en línea de Apache Spark

El cuaderno de Microsoft Fabric se basa en Apache Spark. Las celdas de código se ejecutan en el clúster de Apache Spark de manera remota. Se proporciona un indicador de progreso del trabajo de Spark con una barra de progreso en tiempo real que aparece para ayudar a comprender 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 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, los cuadernos de Fabric admiten la redacción secreta para reemplazar los valores secretos que se muestran en la salida de celda por [REDACTED]. La redacción secreta es aplicable a Python, Scala y R.

Captura de pantalla de la redacción secreta.

Comandos magic en un cuaderno

Comandos magic integrados

Puede usar los comandos magic de IPython que ya conoce en los cuadernos de Fabric. Revisa la lista siguiente para ver los comandos magic disponibles actualmente.

Nota:

Estos son los únicos comandos mágicos admitidos en la canalización de Fabric: %%pyspark, %%spark, %%csharp, %%sql, %%configure.

Comandos magic 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, %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, %whos, %xdel, %xmode.

El cuaderno de Fabric también admite los comandos de administración de bibliotecas %pip y %conda mejorados. Para obtener más información sobre el uso, consulte Administración de bibliotecas de Apache Spark en Microsoft Fabric.

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

Comandos mágicos personalizados

También puedes crear más comandos mágicos personalizados para satisfacer tus necesidades específicas. Este es un ejemplo:

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

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

  2. En otro cuaderno, haga referencia a "MyLakehouseModule" y sus comandos mágicos. Este proceso trata de cómo organizar convenientemente el proyecto con cuadernos que usan distintos lenguajes.

    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. Se pueden usar widgets de IPython como controles de poco código en el cuaderno (por ejemplo, control deslizante, cuadro de texto) al igual que con el cuaderno de Jupyter. Actualmente solo funciona en un contexto de Python.

Para usar los widgets de IPython

  1. Importe primero el módulo ipywidgets para usar el marco del widget de Jupyter.

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

    slider = widgets.IntSlider()
    display(slider)
    
  3. Ejecute la celda. 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. Use varias llamadas display() para representar la misma instancia de widget varias veces. Permanecen sincronizadas entre sí.

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

    Captura de pantalla que muestra varias veces de 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 Botón de alternar, Casilla de verificación, Válido
Widgets de selección Desplegable, Botones de Radio, Seleccionar, Deslizador de Selección, Deslizador de Rango de Selección, Botones de Alternancia, Selección Múltiple
Widgets de texto Texto, Área de texto, Cuadro combinado, Contraseña, Etiqueta, HTML, HTML Math, Imagen, Botón
Widgets de reproducción (animación) Selector de fecha, Selector de color, Controlador
Widgets de contenedor o diseño Box, HBox, VBox, GridBox, Acordeón, Pestañas, Apilado

Limitaciones conocidas

  • Los siguientes widgets todavía no se admiten. Las siguientes soluciones están disponibles:

    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.
  • La función de visualización global fabric no admite la visualización de varios widgets en una llamada (por ejemplo, display(a, b)). Este comportamiento es diferente de la función de visualización de IPython.

  • Si cierras un cuaderno que contenga el widget de IPython, no podrás verlo ni interactuar con él hasta que vuelvas a ejecutar la celda correspondiente.

  • No se admite la función de interacción (ipywidgets.interact).

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 Alternar celda de parámetro para designar la celda como celda de parámetros.

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

La celda de parámetros es útil para integrar un cuaderno en una canalización. La actividad de canalización busca la celda de parámetros y la trata como la predeterminada para los parámetros que se pasan en tiempo de ejecución. El motor de ejecución agregará una nueva celda debajo de la celda de parámetros con parámetros de entrada para sobrescribir los valores predeterminados.

Asigna valores a los parámetros desde una canalización

Una vez que se cree un cuaderno con parámetros, se puede ejecutar desde una canalización con la actividad de cuaderno de Synapse. Después de agregar la actividad al lienzo de la canalización, puede establecer los valores de parámetros en la sección Parámetros base de la pestaña Configuración .

Captura de pantalla que muestra dónde asignar valores de parámetros desde una canalización.

Al asignar valores de parámetro, puede usar el lenguaje de expresiones de canalización o las funciones y variables.

Comando mágico de configuración de la sesión de Spark

Puede personalizar la sesión de Spark con el comando magic %%configure. Fabric Notebook admite núcleos virtuales personalizados, memoria del controlador y ejecutor, propiedades de Apache Spark, puntos de montaje, grupo y el almacén de lago predeterminado de la sesión del cuaderno. Se pueden usar tanto en actividades de cuaderno interactivo como de canalización. Se recomienda ejecutar el comando %%configure al principio del cuaderno, o bien debe reiniciar la sesión de Spark para que la configuración surta efecto.

%%configure
{
    // You can get a list of valid parameters to config the session from https://github.com/cloudera/livy#request-body.
    "driverMemory": "28g", // Recommended values: ["28g", "56g", "112g", "224g", "400g"]
    "driverCores": 4, // Recommended values: [4, 8, 16, 32, 64]
    "executorMemory": "28g",
    "executorCores": 4,
    "jars": ["abfs[s]: //<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar", "wasb[s]: //<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
    "conf":
    {
        // Example of customized property, you can specify count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
        "livy.rsc.sql.num-rows": "3000",
        "spark.log.level": "ALL"
    },
    "defaultLakehouse": {  // This overwrites the default lakehouse for current session
        "name": "<lakehouse-name>",
        "id": "<(optional) lakehouse-id>",
        "workspaceId": "<(optional) workspace-id-that-contains-the-lakehouse>" // Add workspace ID if it's from another workspace
    },
    "mountPoints": [
        {
            "mountPoint": "/myMountPoint",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>"
        },
        {
            "mountPoint": "/myMountPoint1",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path1>"
        },
    ],
    "environment": {
        "id": "<environment-id>",
        "name": "<environment-name>"
    },
    "sessionTimeoutInSeconds": 1200,
    "useStarterPool": false,  // Set to true to force using starter pool
    "useWorkspacePool": "<workspace-pool-name>"
}

Nota:

  • Se recomienda establecer el mismo valor para "DriverMemory" y "ExecutorMemory" en %%configure. Los valores "driverCores" y "executorCores" también deben ser los mismos.
  • El "defaultLakehouse" sobrescribirá el almacén de lago anclado en el explorador de Lakehouse, pero eso solo funciona en la sesión del cuaderno actual.
  • Puede usar %%configure en canalizaciones de Fabric, pero si no está establecido en la primera celda de código, se produce un error en la ejecución de la canalización debido a que no se puede reiniciar la sesión.
  • El %%configure utilizado en notebookutils.notebook.run se omitirá, pero %run notebook continuará ejecutándose.
  • Las propiedades de configuración de Spark estándar se deben usar en el cuerpo "conf". Fabric no admite referencias directas para las propiedades de configuración de Spark.
  • Algunas propiedades especiales de Spark, como "spark.driver.cores", "spark.executor.cores", "spark.driver.memory", "spark.executor.memory" y "spark.executor.instances", no tendrán efecto en el cuerpo "conf".

Configurar la sesión parametrizada desde la canalización

La configuración de sesión parametrizada permite reemplazar el valor magic %%configure por los parámetros de actividad del cuaderno de ejecución de la canalización. Al preparar la celda de código %%configure, puede invalidar los valores predeterminados (también configurables, 4 y "2000" en el ejemplo siguiente) con un objeto como este:

{
      "parameterName": "paramterNameInPipelineNotebookActivity",
      "defaultValue": "defaultValueIfNoParamterFromPipelineNotebookActivity"
} 
%%configure  

{ 
    "driverCores": 
    { 
        "parameterName": "driverCoresFromNotebookActivity", 
        "defaultValue": 4 
    }, 
    "conf": 
    { 
        "livy.rsc.sql.num-rows": 
        { 
            "parameterName": "rows", 
            "defaultValue": "2000" 
        } 
    } 
} 

Un cuaderno usa el valor predeterminado si ejecuta un cuaderno en modo interactivo directamente o si la actividad del cuaderno de canalización no proporciona ningún parámetro que coincida con "activityParameterName".

Durante una ejecución de canalización, se pueden configurar las opciones de actividad del cuaderno de canalización de la siguiente manera:

Captura de pantalla que muestra dónde configurar la sesión con parámetros.

Si se desea cambiar la configuración de sesión, el nombre de los parámetros de la actividad del cuaderno de la canalización debe ser igual que el parameterName del cuaderno. En este ejemplo de ejecución de una canalización, se reemplaza driverCores en %%configure por 8 y livy.rsc.sql.num-rows, por 4000.

Nota:

  • Si se produce un error en una ejecución de canalización porque se usó el comando magic %%configure, busca más información de error ejecutando la celda mágica %%configure en el modo interactivo del cuaderno.
  • Las ejecuciones programadas de notebooks no admiten la configuración de sesión parametrizada.

Registrar Python en Notebook

Puede encontrar los registros de Python y establecer diferentes niveles de registro y formatos siguiendo el siguiente código de ejemplo:

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")

Visualización del historial de comandos de entrada

Fabric Notebook admite el comando mágico %history para imprimir el historial de comandos de entrada que se ejecutó en la sesión actual, comparando con el comando estándar de Jupyter Ipython que el %history funciona para varios lenguajes de contexto en el cuaderno.

%history [-n] [range [range ...]]

Opciones:

  • -n: Imprimir número de ejecución.

Donde el rango puede ser:

  • N: Imprimir el código de la celda N ejecutada.
  • M-N: imprimir el código desde la celda ejecutada M hasta la N.

Ejemplo:

  • Imprimir el historial de entrada desde la primera hasta la segunda celda ejecutada: %history -n 1-2

Teclas de método abreviado

De forma similar a los cuadernos de Jupyter Notebook, los cuadernos de 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 Fabric admiten los dos modos siguientes para una celda de código determinada: modo de comando y modo de edición.

  • Una celda se encuentra en modo de comando cuando no hay ningún cursor de texto que le solicite que escriba. Cuando una celda está en modo de comando, puede editar el cuaderno en su conjunto, pero no escribir en celdas individuales. Para ingresar al modo de comando, presione ESC o use el mouse para seleccionar fuera del área del editor de una celda.

    Captura de pantalla de una celda en modo comando.

  • El modo de edición se indica mediante un cursor de texto que le solicita que escriba en el área del editor. Cuando una celda se encuentra en modo de edición, puede escribir en la celda. Para ingresar al modo de edición, presiona Entrar o usa el mouse para seleccionar el área de edición de la celda.

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

Teclas de método abreviado en modo de comando

Acción Métodos abreviados de bloc de notas
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 Abajo
Seleccionar celda anterior K
Seleccionar celda siguiente J
Insertar una celda encima Un
Insertar una celda debajo B
Eliminar celdas seleccionadas Mayús+D
Cambiar al modo de edición Escribir

Teclas abreviadas en el modo de edición

Con los siguientes métodos abreviados de teclado, puede desplazarse y ejecutar código más fácilmente en los cuadernos de Fabric cuando esté en modo de edición.

Acción Métodos abreviados de bloc de notas
Subir el cursor Arriba
Bajar el cursor Abajo
Deshacer CTRL+Z
Rehacer CTRL+Y
Agregar o quitar comentarios CTRL+/
Comentario: Ctrl + K + C
Descomentar: Ctrl + K + U
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

Para buscar todos los atajos de teclado, seleccione Ver en la cinta de opciones del cuaderno y, a continuación, seleccione Asignaciones de teclas.