Sviluppare, eseguire e gestire notebook di Microsoft Fabric

Un notebook di Microsoft Fabric è un elemento di codice principale per lo sviluppo di processi Apache Spark e esperimenti di Machine Learning. Si tratta di una superficie interattiva basata sul Web usata da data scientist e data engineer per scrivere codice che trae vantaggio dalle visualizzazioni avanzate e dal testo Markdown. Questo articolo illustra come sviluppare notebook con operazioni sulle celle di codice ed eseguirli.

Sviluppare i notebook

I notebook sono costituiti da celle, che sono singoli blocchi di codice o testo che possono essere eseguiti in modo indipendente o come gruppo.

Sono disponibili operazioni avanzate per lo sviluppo di notebook:

Aggiungere una cella

Esistono diversi modi per aggiungere una nuova cella al notebook.

  1. Passare il puntatore del mouse sullo spazio tra due celle e selezionare Codice o Markdown.

  2. Usare i tasti di scelta rapida in modalità di comando. Premere A per inserire una cella al di sopra della cella corrente. Premere B per inserire una cella sotto la cella corrente.

Impostare il linguaggio primario

I notebook di Fabric attualmente supportano quattro linguaggi Apache Spark:

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

È possibile impostare la lingua primaria per le nuove celle aggiunte dall'elenco a discesa nella barra dei comandi superiore.

Usare più linguaggi

È possibile usare più lingue in un notebook specificando il comando magic del linguaggio all'inizio di una cella. È anche possibile cambiare la lingua della cella dalla selezione lingua. Nella tabella seguente sono elencati i comandi magic per cambiare le lingue delle celle.

Screenshot che mostra un esempio del comando magic del linguaggio immesso all'inizio di una cella.

Comando Magic Lingua Descrizione
%%pyspark Python Eseguire una query Python sul contesto Spark.
%%spark Scala Eseguire una query Scala sul contesto Spark.
%%sql SparkSQL Eseguire una query SparkSQL sul contesto Spark.
%%html Html Eseguire una query HTML sul contesto Spark.
%%sparkr R Eseguire una query R sul contesto spark.

IntelliSense di tipo IDE

I notebook di Fabric sono integrati con l'editor Monaco per portare IntelliSense in stile IDE nell'editor di celle. L'evidenziazione della sintassi, l'indicatore di errore e i completamenti automatici del codice consentono di scrivere rapidamente codice e identificare i problemi.

Le funzionalità di IntelliSense hanno livelli di maturità diversi per i diversi linguaggi. La tabella seguente illustra le funzionalità supportate da Fabric:

Lingue Evidenziazione della sintassi Indicatore di errore della sintassi Completamento del codice di sintassi Completamento del codice variabile Completamento del codice della funzione di sistema Completamento del codice della funzione utente Rientro intelligente Riduzione del codice
PySpark (Python)
Spark (Scala)
SparkSQL No
SparkR

Nota

Per usare il completamento del codice IntelliSense, è necessario disporre di una sessione Spark attiva.

Frammenti di codice

I notebook di Fabric forniscono frammenti di codice che consentono di scrivere facilmente modelli di codice usati comunemente, ad esempio:

  • Lettura dei dati come dataframe Spark
  • Disegno di grafici con Matplotlib

I frammenti di codice vengono visualizzati nei tasti di scelta rapida dello stile IDE IntelliSense in combinazione con altri suggerimenti. Il contenuto del frammento di codice è allineato al linguaggio di cella del codice. È possibile visualizzare frammenti di codice disponibili digitando Snippet. È anche possibile digitare qualsiasi parola chiave per visualizzare un elenco di frammenti di codice pertinenti. Ad esempio, se si digita la lettura, viene visualizzato l'elenco dei frammenti di codice per leggere i dati da varie origini dati.

GIF animata di frammenti di codice.

Trascinare e rilasciare per inserire frammenti di codice

Usare il trascinamento della selezione per leggere i dati da Lakehouse Explorer in modo pratico. Qui sono supportati più tipi di file; è possibile operare su file di testo, tabelle, immagini e così via. È possibile passare a una cella esistente o a una nuova cella. Il notebook genera il frammento di codice di conseguenza per visualizzare in anteprima i dati.

GIF animata di trascinamento della selezione per inserire frammenti.

Trascinare e rilasciare per inserire immagini

Usare il trascinamento della selezione per inserire facilmente immagini dal browser o dal computer locale a una cella markdown.

GIF animata di trascinamento della selezione per inserire immagini.

Formattare la cella di testo con i pulsanti della barra degli strumenti

Per completare le azioni markdown comuni, usare i pulsanti di formato nella barra degli strumenti della cella di testo.

Screenshot della barra degli strumenti di formattazione del testo.

Annullare o ripetere le operazioni delle celle

Selezionare Annulla o Ripeti oppure premere Z o MAIUSC+Z per revocare le operazioni di cella più recenti. È possibile annullare o ripetere fino a 10 delle ultime operazioni cronologiche delle celle.

Screenshot che mostra le opzioni di annullamento e rollforward del menu.

Operazioni di annullamento delle celle supportate:

  • Inserire o eliminare una cella. È possibile revocare le operazioni di eliminazione selezionando Annulla (il contenuto del testo viene mantenuto insieme alla cella).
  • Riordinare la cella.
  • Attiva/disattiva parametro.
  • Eseguire la conversione tra cella di codice e cella Markdown.

Nota

Le operazioni di testo in cella e le operazioni di commento delle celle di codice non possono essere annullate. È possibile annullare o ripetere fino a 10 delle ultime operazioni cronologiche delle celle.

Spostare una cella

È possibile trascinare dalla parte vuota di una cella e rilasciarla nella posizione desiderata.

È anche possibile spostare la cella selezionata usando Sposta su e Sposta giù sulla barra multifunzione.

Screenshot che mostra le opzioni per lo spostamento di una cella.

Eliminare una cella

Per eliminare una cella, selezionare il pulsante Elimina sul lato destro della cella.

È anche possibile usare i tasti di scelta rapida in modalità comando. Premere MAIUSC+D per eliminare la cella corrente.

Comprimere l'input di una cella

Selezionare i puntini di sospensione Altri comandi (...) sulla barra degli strumenti della cella e Nascondi input per comprimere l'input della cella corrente. Per espanderlo di nuovo, selezionare Mostra input quando la cella è compressa.

Comprimere l'output di una cella

Selezionare i puntini di sospensione Altri comandi (...) sulla barra degli strumenti della cella e Nascondi output per comprimere l'output della cella corrente. Per espanderlo di nuovo, selezionare Mostra output quando l'output della cella è compresso.

Sicurezza dell'output delle celle

Usando i ruoli di accesso ai dati di OneLake (anteprima) gli utenti possono configurare l'accesso solo a cartelle specifiche in un lakehouse durante le query dei notebook. Gli utenti senza accesso a una cartella o a una tabella visualizzeranno un errore non autorizzato durante l'esecuzione della query.

Importante

La sicurezza si applica solo durante l'esecuzione delle query e tutte le celle del notebook contenenti i risultati delle query possono essere visualizzate dagli utenti che non sono autorizzati a eseguire direttamente query sui dati.

Bloccare o bloccare una cella

Le operazioni di blocco e blocco delle celle consentono di rendere le celle di sola lettura o arrestare l'esecuzione delle celle di codice su base individuale.

GIF animata di blocco o blocco di una cella.

Unire e dividere le celle

È possibile usare Merge con la cella precedente o Unisci con la cella successiva per unire le celle correlate in modo pratico.

La selezione della cella Split consente di suddividere le istruzioni irrilevanti in più celle. L'operazione suddivide il codice in base alla posizione della riga del cursore.

Screenshot che mostra la voce delle celle suddivise di tipo merge.

Contenuto del notebook

Selezionando Contorni o Sommario viene visualizzata la prima intestazione markdown di qualsiasi cella markdown in una finestra della barra laterale per una navigazione rapida. La barra laterale Outlines è ridimensionabile e collapsible per adattarsi allo schermo nel modo migliore possibile. Selezionare il pulsante Contenuto sulla barra dei comandi del notebook per aprire o nascondere la barra laterale.

Screenshot che mostra dove selezionare l'opzione Contenuto.

Riduzione markdown

L'opzione di riduzione markdown consente di nascondere le celle in una cella markdown che contiene un'intestazione. La cella markdown e le relative celle nascoste vengono considerate uguali a un set di celle multi-selezionate contigue durante l'esecuzione di operazioni di cella.

GIF animata della riduzione markdown.

Ricerca e sostituzione

L'opzione trova e sostituisci consente di trovare e individuare le parole chiave o l'espressione all'interno del contenuto del notebook. È anche possibile sostituire facilmente la stringa di destinazione con una nuova stringa.

Screenshot che mostra il riquadro trova e sostituisci.

Eseguire notebook

È possibile eseguire le celle di codice nel notebook singolarmente o tutte insieme. Lo stato e lo stato di avanzamento di ogni cella vengono visualizzati nel notebook.

Eseguire una cella

Esistono diversi modi per eseguire il codice in una cella.

  • Passare il puntatore del mouse sulla cella da eseguire e selezionare il pulsante Esegui cella o premere CTRL+INVIO.

  • Usare i tasti di scelta rapida in modalità di comando. Premere MAIUSC+INVIO per eseguire la cella corrente e selezionare la cella successiva. Premere ALT+INVIO per eseguire la cella corrente e inserire una nuova cella.

Eseguire tutte le celle

Selezionare il pulsante Esegui tutto per eseguire tutte le celle del notebook corrente in sequenza.

Eseguire tutte le celle al di sopra o al di sotto

Espandere l'elenco a discesa da Esegui tutto, quindi selezionare Esegui celle sopra per eseguire tutte le celle sopra la sequenza corrente. Selezionare Esegui celle di seguito per eseguire la cella corrente e tutte le celle sotto la sequenza corrente.

Screenshot che mostra le opzioni di menu Esegui tutto.

Annullare tutte le celle in esecuzione

Selezionare Annulla tutto per annullare le celle o le celle in esecuzione in attesa nella coda.

Arrestare la sessione

Arresta sessione annulla le celle in esecuzione e in attesa e arresta la sessione corrente. È possibile riavviare una nuova sessione selezionando nuovamente l'opzione esegui.

Screenshot che mostra dove selezionare Annulla tutte le esecuzioni e arrestare una sessione.

Esecuzione di riferimento

Eseguire un notebook di riferimento

Oltre all'API di esecuzione di riferimento mssparkutils, è anche possibile usare il %run <notebook name> comando magic per fare riferimento a un altro notebook all'interno del contesto del notebook corrente. Tutte le variabili definite nel notebook di riferimento sono disponibili nel notebook corrente. Il %run comando magic supporta chiamate annidate, ma non supporta chiamate ricorsive. Si riceve un'eccezione se la profondità dell'istruzione è maggiore di cinque.

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

I riferimenti ai notebook funzionano sia in modalità interattiva che in pipeline.

Nota

  • Il %run comando supporta attualmente solo notebook di riferimento nella stessa area di lavoro con il notebook corrente.
  • Il %run comando supporta attualmente solo fino a quattro tipi di valore di parametro: int, float, boole string. L'operazione di sostituzione delle variabili non è supportata.
  • Il %run comando non supporta riferimenti annidati con una profondità maggiore di cinque.

Eseguire uno script di riferimento

Il %run comando consente anche di eseguire file Python o SQL archiviati nelle risorse predefinite del notebook, in modo da poter eseguire facilmente i file di codice sorgente nel notebook.

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

Per le opzioni:

  • -b/-builtin: questa opzione indica che il comando troverà ed eseguirà il file di script specificato dalle risorse predefinite del notebook.
  • -c/-current: questa opzione garantisce che il comando usi sempre le risorse predefinite del notebook corrente, anche se il notebook corrente fa riferimento ad altri notebook.

Esempi:

  • Per eseguire script_file.py dalle risorse predefinite: %run -b script_file.py

  • Per eseguire script_file.sql dalle risorse predefinite: %run -b script_file.sql

  • Per eseguire script_file.py dalle risorse predefinite con variabili specifiche: %run -b script_file.py { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }

Nota

Se il comando non contiene -b/-builtin, tenterà di trovare ed eseguire l'elemento del notebook all'interno della stessa area di lavoro anziché le risorse predefinite.

Esempio di utilizzo per il caso di esecuzione annidato:

  • Si supponga di avere due notebook.
    • Notebook1: contiene script_file1.py nelle risorse predefinite
    • Notebook2: contiene script_file2.py nelle risorse predefinite
  • Si userà Notebook1 come notebook radice con il contenuto : %run Notebook2.
  • Quindi, in Notebook2 l'istruzione di utilizzo è:
    • Per eseguire script_file1.py in Notebook1 (notebook radice) il codice sarà: %run -b script_file1.py
    • Per eseguire script_file2.py in Notebook2 (notebook corrente), il codice sarà: %run -b -c script_file2.py

Esplora variabili

I notebook di Fabric offrono uno strumento di esplorazione delle variabili predefinito che visualizza l'elenco dei nomi delle variabili, del tipo, della lunghezza e del valore nella sessione Spark corrente per le celle PySpark (Python). Altre variabili vengono visualizzate automaticamente man mano che vengono definite nelle celle di codice. Facendo clic su ogni intestazione di colonna, le variabili nella tabella sono ordinate.

Per aprire o nascondere Esplora variabili, selezionare Variabili nella visualizzazione della barra multifunzione del notebook.

Screenshot che mostra dove aprire le variabili.

Nota

Esplora variabili supporta solo Python.

Indicatore di stato delle celle

Sotto la cella viene visualizzato il relativo stato di esecuzione dettagliato, che indica lo stato di avanzamento corrente. Una volta completata l'esecuzione della cella, viene visualizzato un riepilogo dell'esecuzione con la durata totale e l'ora di fine e viene archiviata per riferimento futuro.

Screenshot che mostra un esempio di dettagli dello stato di esecuzione della cella.

Indicatore del processo Spark inline

Il notebook di Fabric è basato su Spark. Le celle di codice vengono eseguite nel cluster Spark in modalità remota. Un indicatore di stato del processo Spark viene fornito con un indicatore di stato in tempo reale che viene visualizzato per comprendere lo stato di esecuzione del processo. Il numero di attività per ogni processo o fase consente di identificare il livello parallelo del processo Spark. È anche possibile eseguire un'analisi più approfondita dell'interfaccia utente Spark di uno specifico processo (o fase) selezionando il collegamento al nome del processo (o della fase).

È anche possibile trovare il log in tempo reale a livello di cella accanto all'indicatore di stato e Diagnostica può fornire suggerimenti utili per perfezionare ed eseguire il debug del codice.

Screenshot dei dettagli dell'avanzamento dei processi Spark.

In Altre azioni è possibile passare facilmente alla pagina dei dettagli dell'applicazione Spark e alla pagina dell'interfaccia utente Web Spark.

Screenshot dei dettagli di altre azioni.

Offuscamento di segreti

Per evitare che le credenziali vengano accidentalmente perse durante l'esecuzione di notebook, i notebook di Fabric supportano la redazione Secret per sostituire i valori dei segreti visualizzati nell'output della cella con [REDACTED]. La ridistribuzione dei segreti è applicabile per Python, Scala e R.

Screenshot della ridistribuzione dei segreti.

Comandi magic in un notebook

Comandi magic predefiniti

È possibile usare comandi magic ipython familiari nei notebook di Fabric. Esaminare l'elenco seguente dei comandi magic attualmente disponibili.

Nota

Questi sono gli unici comandi magic supportati nella pipeline di Infrastruttura: %%pyspark, %%spark, %%csharp, %%sql, %%configure.

Comandi magic della riga disponibili: %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, %who, %xdel, %xmode.

Il notebook di Fabric supporta anche i comandi di gestione delle librerie migliorati %pip e %conda. Per altre informazioni sull'utilizzo, vedere Gestire le librerie Apache Spark in Microsoft Fabric.

Comandi magic delle celle disponibili: %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%configure, %%html, %%bash, %%markdown, %%perl, %%script, %%sh.

Comandi magic personalizzati

È anche possibile creare comandi magic più personalizzati per soddisfare esigenze specifiche. Ecco un esempio:

  1. Creare un notebook con il nome "MyLakehouseModule".

    Screenshot della definizione di un magic personalizzato.

  2. In un altro notebook fare riferimento a "MyLakehouseModule" e ai relativi comandi magic. Questo processo consente di organizzare facilmente il progetto con notebook che usano linguaggi diversi.

    Screenshot dell'uso di magic personalizzati.

Widget IPython

IPython Widgets sono oggetti Python con evento che hanno una rappresentazione nel browser. È possibile usare i widget IPython come controlli a basso codice (ad esempio, dispositivo di scorrimento o casella di testo) nel notebook, proprio come il notebook di Jupyter. Attualmente funziona solo in un contesto Python.

Per usare i widget IPython

  1. Importare prima il modulo ipywidgets per usare il framework jupyter Widget.

    import ipywidgets as widgets
    
  2. Usare la funzione di visualizzazione di primo livello per eseguire il rendering di un widget o lasciare un'espressione di tipo widget all'ultima riga della cella di codice.

    slider = widgets.IntSlider()
    display(slider)
    
  3. Eseguire la cella. Il widget viene visualizzato nell'area di output.

    slider = widgets.IntSlider()
    display(slider)
    

    Screenshot del widget visualizzato nell'area di output.

  4. Usare più chiamate display() per eseguire più volte il rendering della stessa istanza del widget. Rimangono sincronizzati tra loro.

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

    Screenshot che mostra più volte un widget.

  5. Per eseguire il rendering di due widget indipendenti l'uno dall'altro, creare due istanze del widget:

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

    Screenshot che mostra più istanze di widget.

Widget supportati

Tipo di widget Widget
Widget numerici IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText
Widget booleani ToggleButton, Casella di controllo, Valido
Widget di selezione Elenco a discesa, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple
Widget stringa Text, Text area, Combobox, Password, Label, HTML, HTML Math, Image, Button
Widget Di riproduzione (animazione) Selezione data, Selezione colori, Controller
Widget contenitore o layout Box, HBox, VBox, GridBox, Accordion, Tabs, Stacked

Limitazioni note

  • I widget seguenti non sono ancora supportati. Sono disponibili le soluzioni alternative seguenti:

    Funzionalità Soluzione alternativa
    Widget di output È invece possibile usare la funzione print() per scrivere testo in stdout.
    widgets.jslink() È possibile usare la funzione widgets.link() per collegare due widget simili.
    Widget FileUpload Non ancora supportato.
  • La funzione di visualizzazione globale fabric non supporta la visualizzazione di più widget in una chiamata ( ad esempio, display(a, b)). Questo comportamento è diverso dalla funzione di visualizzazione IPython.

  • Se si chiude un notebook che contiene un widget IPython, non è possibile visualizzare o interagire con esso fino a quando non si esegue di nuovo la cella corrispondente.

Integrare un notebook

Designare una cella di parametri

Per parametrizzare il notebook, selezionare i puntini di sospensione (...) per accedere ai comandi Altro sulla barra degli strumenti delle celle. Selezionare quindi Attiva/Disattiva cella del parametro per designare la cella come cella dei parametri.

Screenshot che mostra dove selezionare l'opzione Attiva/Disattiva cella del parametro.

La cella del parametro è utile per l'integrazione di un notebook in una pipeline. L'attività della pipeline cerca la cella dei parametri e considera questa cella come predefinita per i parametri passati in fase di esecuzione. Il motore di esecuzione aggiunge una nuova cella sotto la cella dei parametri con parametri di input per sovrascrivere i valori predefiniti.

Assegnare i valori dei parametri da una pipeline

Dopo aver creato un notebook con parametri, è possibile eseguirlo da una pipeline con l'attività notebook di Fabric. Dopo aver aggiunto l'attività all'area di disegno della pipeline, è possibile impostare i valori dei parametri nella sezione Parametri di base della scheda Impostazioni.

Screenshot che mostra dove assegnare i valori dei parametri da una pipeline.

Quando si assegnano valori di parametro, è possibile usare il linguaggio delle espressioni della pipeline o le funzioni e le variabili.

Comando magic di configurazione della sessione Spark

È possibile personalizzare la sessione di Spark con il comando magic %%configure. Il notebook di Fabric supporta vCore personalizzati, la memoria del driver e dell'executor, le proprietà Spark, i punti di montaggio, il pool e la lakehouse predefinita della sessione del notebook. Possono essere usati sia nelle attività interattive del notebook che del notebook della pipeline. È consigliabile eseguire il comando %%configure all'inizio del notebook oppure riavviare la sessione Spark per rendere effettive le impostazioni.

%%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", "472g"]
    "driverCores": 4, // Recommended values: [4, 8, 16, 32, 64, 80]
    "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": "<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>"
        },
    ],
    "useStarterPool": false,  // Set to true to force using starter pool
    "useWorkspacePool": "<workspace-pool-name>"
}

Nota

  • È consigliabile impostare lo stesso valore per "DriverMemory" e "ExecutorMemory" in %%configure. Anche i valori "driverCores" e "executorCores" devono essere uguali.
  • "defaultLakehouse" sovrascriverà la lakehouse bloccata in Lakehouse Explorer, ma funziona solo nella sessione del notebook corrente.
  • È possibile usare %%configure nelle pipeline di Fabric, ma se non è impostato nella prima cella di codice, l'esecuzione della pipeline avrà esito negativo perché non è possibile riavviare la sessione.You can use %%configure in Fabric pipelines, but it's not set in the first code cell, the pipeline run will fail due to restart session.
  • %%configure usato in mssparkutils.notebook.run verrà ignorato, ma usato in %run notebook continuerà l'esecuzione.
  • Le proprietà di configurazione spark standard devono essere usate nel corpo "conf". Fabric non supporta i riferimenti di primo livello per le proprietà di configurazione di Spark.
  • Alcune proprietà speciali di Spark, tra cui "spark.driver.cores", "spark.executor.cores", "spark.driver.memory", "spark.executor.memory" e "spark.executor.instances" non hanno effetto nel corpo "conf".

Configurazione della sessione con parametri da una pipeline

La configurazione della sessione con parametri consente di sostituire il valore in %%configure magic con i parametri dell'attività del notebook di esecuzione della pipeline. Quando si prepara la cella di codice %%configure, è possibile eseguire l'override dei valori predefiniti (configurabili anche, 4 e "2000" nell'esempio seguente) con un oggetto simile al seguente:

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

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

Un notebook usa il valore predefinito se si esegue un notebook in modalità interattiva direttamente o se l'attività del notebook della pipeline non fornisce alcun parametro corrispondente a "activityParameterName".

Durante un'esecuzione della pipeline, è possibile configurare le impostazioni dell'attività del notebook della pipeline come indicato di seguito:

Screenshot che mostra dove configurare una sessione con parametri.

Se si vuole modificare la configurazione della sessione, il nome dei parametri dell'attività del notebook della pipeline deve essere uguale a quello parameterName del notebook. In questo esempio di esecuzione di una pipeline, driverCores in %%configure vengono sostituiti da 8 e livy.rsc.sql.num-rows vengono sostituiti da 4000.

Nota

  • Se un'esecuzione della pipeline ha esito negativo perché è stato usato il comando magic %%configure, trovare altre informazioni sull'errore eseguendo la cella magic %%configure nella modalità interattiva del notebook.
  • Le esecuzioni pianificate del notebook non supportano la configurazione della sessione con parametri.

Registrazione di Python in un notebook

È possibile trovare i log python e impostare livelli di log e formato diversi, come il codice di esempio illustrato di seguito:

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

Visualizzare la cronologia dei comandi di input

Il notebook di Fabric supporta il comando %history magic per stampare la cronologia dei comandi di input eseguita nella sessione corrente, confrontando il comando %history Standard di Jupyter Ipython che funziona per più lingue nel notebook.

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

Per le opzioni:

  • -n: Stampa numero di esecuzione.

Dove l'intervallo può essere:

  • N: Stampare il codice dellacella n eseguita.
  • M-N: stampare il codice da Mth a Nth eseguito cella.

Esempio:

  • Stampare la cronologia di input dalla prima alla seconda cella eseguita: %history -n 1-2

Combinazioni di tasti

Analogamente ai notebook di Jupyter, i notebook di Fabric hanno un'interfaccia utente modale. La tastiera esegue diverse operazioni a seconda della modalità in cui si trova la cella del notebook. I notebook di Fabric supportano le due modalità seguenti per una determinata cella di codice: modalità di comando e modalità di modifica.

  • Una cella è in modalità Comando quando non è presente alcun cursore di testo che richiede di digitare. Quando una cella è in modalità di comando, è possibile modificare il notebook nel suo complesso, ma non digitare in singole celle. Immettere la modalità comando premendo ESC o usando il mouse per selezionare all'esterno dell'area dell'editor di una cella.

    Screenshot di una cella in modalità comando.

  • La modalità di modifica può essere indicata da un cursore di testo che richiede di digitare nell'area dell'editor. Quando una cella è in modalità Modifica, è possibile digitare nella cella. Immettere la modalità di modifica premendo INVIO o usando il mouse per selezionare l'area dell'editor di una cella.

    Screenshot di una cella in modalità di modifica.

Tasti di scelta rapida in modalità comando

Azione Tasti di scelta rapida per notebook
Eseguire la cella corrente e selezionare in basso MAIUSC + Invio
Eseguire la cella corrente e inserire in basso ALT + INVIO
Eseguire la cella corrente Ctrl + INVIO
Selezionare la cella in alto Freccia SU
Selezionare la cella in basso Giù
Selezionare la cella precedente K
Selezionare la cella successiva J
Inserire la cella in alto Un
Inserire la cella in basso G
Eliminare le celle selezionate MAIUSC + D
Passare alla modalità di modifica INVIO

Tasti di scelta rapida in modalità di modifica

Usando i tasti di scelta rapida seguenti, è possibile spostarsi ed eseguire facilmente il codice nei notebook di Fabric quando si usa la modalità di modifica.

Azione Tasti di scelta rapida per notebook
Spostare il cursore in alto Freccia SU
Spostare in cursore in basso Giù
Annulla CTRL + Z
Ripeti CTRL + Y
Commento o Rimuovi commento CTRL+ /
Commento: CTRL + K + C
Rimuovi commento: CTRL + K + U
Eliminare la parola prima CTRL + BACKSPACE
Eliminare la parola dopo CTRL + CANC
Andare all'inizio della cella CTRL + Home
Andare alla fine della cella CTRL + Fine
Andare a sinistra di una parola CTRL + freccia sinistra
Andare a destra di una parola CTRL + freccia destra
Seleziona tutto CTRL + A
Impostare un rientro CTRL + ]
Annullare l'impostazione di un rientro CTRL + [
Passare alla modalità comandi ESC

Per trovare tutti i tasti di scelta rapida, selezionare Visualizza sulla barra multifunzione del notebook e quindi selezionare Tasti di scelta rapida.