Creare, sviluppare e gestire notebook di Synapse in Azure Synapse Analytics
Un notebook di Synapse è un'interfaccia Web che consente di creare file che contengono codice in tempo reale, visualizzazioni e testo descrittivo. I notebook possono essere usati per convalidare idee ed eseguire esperimenti rapidi per ottenere informazioni cognitive dettagliate dai dati. I notebook sono anche ampiamente usati per la preparazione e la visualizzazione dei dati, l'apprendimento automatico e altri scenari di Big Data.
Con un notebook di Synapse è possibile:
- Iniziare senza attività di configurazione.
- Mantenere i dati protetti con le funzionalità di sicurezza aziendali predefinite.
- Analizzare i dati in formati non elaborati (CSV, txt, JSON e così via), formati di file elaborati (parquet, Delta Lake, ORC e così via) e file di dati tabulari SQL in Spark e SQL.
- Ottenere produttività con funzionalità avanzate di creazione e visualizzazione dei dati predefinite.
Questo articolo descrive come usare i notebook in Synapse Studio.
Creare un notebook
È possibile creare un notebook in due modi. È possibile creare un nuovo notebook o importarne uno esistente in un'area di lavoro di Azure Synapse da Esplora oggetti. I notebook di Synapse riconoscono i file IPYNB di Jupyter Notebook standard.
Sviluppare i notebook
I notebook sono costituiti da celle, ovvero 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
- Impostare il linguaggio primario
- Usare più linguaggi
- Usare tabelle temporanee per fare riferimento ai dati tra linguaggi
- IntelliSense di tipo IDE
- Frammenti di codice
- Formattare la cella di testo con i pulsanti della barra degli strumenti
- Annulla/Ripeti operazione della cella
- Commenti delle celle di codice
- Spostare una cella
- Eliminare una cella
- Comprimere l'input di una cella
- Comprimere l'output di una cella
- Struttura del notebook
Nota
Nei notebook è presente una sessione SparkSession creata automaticamente, archiviata in una variabile denominata spark
. È inoltre presente una variabile per SparkContext denominata sc
. Gli utenti possono accedere direttamente a queste variabili e non devono modificare i valori delle suddette.
Aggiungere una cella
Esistono diversi modi per aggiungere una nuova cella al notebook.
Passare con il mouse sullo spazio tra due celle e selezionare Codice o Markdown.
Usare la combinazione di tasti aznb in modalità 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 Synapse supportano quattro linguaggi Apache Spark:
- PySpark (Python)
- Spark (Scala)
- Spark SQL
- .NET Spark (C#)
- SparkR (R)
È possibile impostare il linguaggio primario per le nuove celle aggiunte dall'elenco a discesa nella barra dei comandi superiore.
Usare più linguaggi
È possibile usare più linguaggi in un notebook specificando il comando magic corretto per il linguaggio all'inizio di una cella. Nella tabella seguente sono elencati i comandi magic per passare da un linguaggio all'altro nelle celle.
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. |
%%csharp | .NET per Spark C# | Eseguire una query .NET per Spark C# sul contesto Spark. |
%%sparkr | R | Eseguire una query R sul contesto Spark. |
L'immagine seguente è un esempio di come è possibile scrivere una query PySpark usando il comando magic %% PySpark o una query SparkSQL con il comando magic %% SQL in un notebook Spark(Scala). Si noti che il linguaggio primario per il notebook è impostato su pySpark.
Usare tabelle temporanee per fare riferimento ai dati tra linguaggi
Non è possibile fare riferimento a dati o variabili direttamente tra linguaggi diversi in un notebook di Synapse. In Spark è possibile fare riferimento a una tabella temporanea tra i vari linguaggi. Di seguito è riportato un esempio di come leggere un DataFrame Scala
in PySpark
e SparkSQL
usando una tabella temporanea di Spark come soluzione alternativa.
Nella cella 1 leggere un DataFrame da un connettore del pool SQL usando Scala e creare una tabella temporanea.
%%spark val scalaDataFrame = spark.read.sqlanalytics("mySQLPoolDatabase.dbo.mySQLPoolTable") scalaDataFrame.createOrReplaceTempView( "mydataframetable" )
Nella cella 2 eseguire una query sui dati usando Spark SQL.
%%sql SELECT * FROM mydataframetable
Nella cella 3 usare i dati in PySpark.
%%pyspark myNewPythonDataFrame = spark.sql("SELECT * FROM mydataframetable")
IntelliSense di tipo IDE
I notebook di Synapse sono integrati nell'editor Monaco e consentono di aggiungere la funzionalità IntelliSense di tipo IDE all'editor di celle. L'evidenziazione della sintassi, il generatore di errori e i completamenti automatici del codice consentono di scrivere codice e identificare più rapidamente i problemi.
Le funzionalità di IntelliSense hanno livelli di maturità diversi per i diversi linguaggi. Usare la tabella seguente per sapere cosa è supportato.
Lingue | Evidenziazione della sintassi | Generatore di errori della sintassi | Completamento del codice della sintassi | Completamento del codice della variabile | Completamento del codice della funzione di sistema | Completamento del codice della funzione utente | Rientro automatico | Riduzione del codice |
---|---|---|---|---|---|---|---|---|
PySpark (Python) | Sì | Sì | Sì | Sì | Sì | Sì | Sì | Sì |
Spark (Scala) | Sì | Sì | Sì | Sì | Sì | Sì | - | Sì |
SparkSQL | Sì | Sì | Sì | Sì | Sì | - | - | - |
.NET per Spark (C#) | Sì | Sì | Sì | Sì | Sì | Sì | Sì | Sì |
Nota
È necessaria una sessione Spark attiva per trarre vantaggio dal completamento del codice della variabile, dal completamento del codice della funzione di sistema, dal completamento del codice della funzione utente per .NET per Spark (C#).
Frammenti di codice
I notebook di Synapse offrono frammenti di codice per semplificare l'immissione di modelli di codice più usati, ad esempio la configurazione della sessione di Spark, la lettura dei dati come un DataFrame Spark o il disegno di grafici con matplotlib e così via.
I frammenti di codice vengono visualizzati nei tasti di scelta rapida di IntelliSense di stile IDE in combinazione con altri suggerimenti. Il contenuto dei frammenti di codice è allineato al linguaggio della cella del codice. È possibile visualizzare frammenti di codice disponibili digitando Frammento di codice o qualsiasi parola chiave contenuta all’interno del titolo del frammento di codice nell'editor delle celle di codice. Ad esempio, digitando leggi è possibile visualizzare l'elenco dei frammenti di codice per leggere i dati da varie origini dati.
Formattare la cella di testo con i pulsanti della barra degli strumenti
È possibile usare i pulsanti di formato nella barra degli strumenti delle celle di testo per eseguire azioni di markdown comuni, Include la formattazione del testo in grassetto, la formattazione del testo in corsivo, il paragrafo/le intestazioni tramite un elenco a discesa, l'inserimento di codice, l'inserimento di un elenco non ordinato, l'inserimento di un elenco ordinato, l'inserimento di collegamenti ipertestuali e l'inserimento di immagini dall'URL.
Annulla/Ripeti operazione della cella
Selezionare il pulsante Annulla / Ripeti, oppure premere Z / Maisc+Z per revocare l'operazione più recente sulle celle. A questo punto è possibile annullare/ripetere le ultime 10 operazioni cronologiche sulle celle.
Annullamenti delle operazioni sulle celle supportati:
- Inserisci/Elimina cella: è possibile revocare le operazioni di eliminazione selezionando Annulla; il contenuto di testo viene mantenuto insieme alla cella.
- Riordina cella.
- Attiva/Disattiva parametro.
- Converti tra cella Codice e cella Markdown.
Nota
Le operazioni di testo all’interno delle celle e le operazioni di commento delle celle di codice non sono annullabili. A questo punto è possibile annullare/ripetere le ultime 10 operazioni cronologiche sulle celle.
Commenti delle celle di codice
Selezionare il pulsante Commenti nella barra degli strumenti del notebook per aprire il riquadro Commenti.
Selezionare il codice nella cella di codice, fare clic su Nuovo nel riquadro Commenti, aggiungere commenti e quindi fare clic sul pulsante Pubblica commento per salvare.
È possibile eseguire Modifica commento, Risolvi thread oElimina thread facendo clic sul pulsante Altro accanto al commento.
Spostare una cella
Fare clic sul lato sinistro di una cella e trascinarla nella posizione desiderata.
Eliminare una cella
Per eliminare una cella, selezionare il pulsante Elimina a destra della cella.
È anche possibile usare la combinazione di tasti in modalità comando. Premere Maiusc+D per eliminare la cella corrente.
Comprimere l'input di una cella
Selezionare i puntini di sospensione Altri comandi (...) nella barra degli strumenti della cella e Nascondi input per comprimere l'input della cella corrente. Per espanderlo, selezionare l'opzione Mostra input mentre la cella è compressa.
Comprimere l'output di una cella
Selezionare i puntini di sospensione Altri comandi (...) nella barra degli strumenti della cella e Nascondi output per comprimere l'output della cella corrente. Per espanderla, selezionare Mostra output mentre l'output della cella è nascosto.
Struttura del notebook
La barra Strutture (Sommario) presenta la prima intestazione markdown di qualsiasi cella markdown in una finestra della barra laterale, ai fini della navigazione rapida. La barra laterale Strutture è ridimensionabile e comprimibile, per adattarsi allo schermo nei modi migliori possibili. È possibile selezionare il pulsante Struttura nella barra dei comandi del notebook per aprire o nascondere la barra laterale
Eseguire notebook
È possibile eseguire le celle di codice nel notebook singolarmente o tutte insieme. Lo stato e l'avanzamento di ogni cella sono rappresentati nel notebook.
Eseguire una cella
Esistono diversi modi per eseguire il codice in una cella.
Passare con il puntatore del mouse sulla cella che si desidera eseguire e selezionare il pulsante Esegui cella oppure premere CTRL + INVIO.
Usare la combinazione di tasti in modalità comando. Premere MAIUSC + INVIO per eseguire la cella corrente e selezionare la cella al di sotto. Premere ALT + INVIO per eseguire la cella corrente e inserire una nuova cella al di sotto.
Eseguire tutte le celle
Selezionare il pulsante Esegui tutte 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 dal pulsante Esegui tutto, quindi selezionare Esegui celle sopra per eseguire tutte le celle sopra la sequenza corrente. Selezionare Esegui celle sotto per eseguire tutte le celle sotto quella corrente in sequenza.
Annulla tutte le celle in esecuzione
Selezionare il pulsante Annulla tutto per annullare le celle in esecuzione o le celle in attesa nella coda.
Informazioni di riferimento sul notebook
È possibile usare il comando magic %run <notebook path>
per fare riferimento a un altro notebook nel contesto del notebook corrente. Tutte le variabili definite nel notebook di riferimento sono disponibili nel notebook corrente. Il comando magic %run
supporta le chiamate annidate, ma non quelle ricorsive. Si riceve un'eccezione se la profondità dell'istruzione è maggiore di cinque.
Esempio: %run /<path>/Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }
.
Le informazioni di riferimento sui notebook funzionano sia in modalità interattiva che nella pipeline Synapse.
Nota
- Il comando
%run
supporta attualmente solo il passaggio di un percorso assoluto o un nome del notebook solo come parametro, il percorso relativo non è supportato. - Il comando
%run
supporta attualmente solo 4 tipi di valore di parametro:int
,float
,bool
,string
, l'operazione di sostituzione delle variabili non è supportata. - È necessario pubblicare i notebook a cui si fa riferimento. È necessario pubblicare i notebook per farvi riferimento a meno che il notebook non pubblicato non sia abilitato. Synapse Studio non riconosce i notebook non pubblicati dal repository Git.
- I notebook a cui si fa riferimento non supportano l'istruzione di profondità maggiore di cinque.
Esplora variabili
Il notebook di Synapse comprende l'opzione predefinita Esplora variabili che consente di visualizzare l’elenco con il nome, il tipo, la lunghezza e il valore delle variabili nella sessione corrente di Spark 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 si ordinano le variabili contenute nella tabella.
È possibile selezionare il pulsante Variabili nella barra dei comandi del notebook per aprire o nascondere Esplora 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. Al termine dell'esecuzione della cella, viene visualizzato un riepilogo dell'esecuzione con la durata totale e l'ora di fine, informazioni che verranno mantenute per riferimento futuro.
Indicatore di avanzamento Spark
Il notebook di Synapse è puramente basato su Spark. Le celle di codice vengono eseguite nel pool di Apache Spark serverless in modalità remota. Viene fornito un indicatore di stato del processo Spark con una barra di avanzamento in tempo reale che consente di 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).
Configurazione della sessione Spark
È possibile specificare la durata del timeout, il numero e le dimensioni degli executor da assegnare alla sessione Spark corrente in Configura sessione. Riavviare la sessione di Spark per rendere effettive le modifiche alla configurazione. Tutte le variabili del notebook memorizzate nella cache vengono cancellate.
È anche possibile creare una configurazione dalla configurazione di Apache Spark o selezionare una configurazione esistente. Per informazioni dettagliate, vedere Gestione della configurazione di Apache Spark.
Comando magic di configurazione della sessione Spark
È anche possibile specificare le impostazioni della sessione Spark tramite un comando magic %%configure. Per rendere effettive le impostazioni è necessario riavviare la sessione Spark. È consigliabile eseguire % %configure all'inizio del notebook. Di seguito è riportato un esempio, fare riferimento a https://github.com/cloudera/livy#request-body per un elenco completo dei parametri validi.
%%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 standard spark property, to find more available properties please visit:https://spark.apache.org/docs/latest/configuration.html#application-properties.
"spark.driver.maxResultSize":"10g",
//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"
}
}
Nota
- È consigliabile impostare "DriverMemory" e "ExecutorMemory" come stesso valore in %%configure, quindi "driverCores" e "executorCores".
- È possibile usare %%configure nelle pipeline di Synapse; tuttavia, se non è impostato nella prima cella di codice, l'esecuzione della pipeline avrà esito negativo perché non è possibile riavviare la sessione.
- %%configure usato in mssparkutils.notebook.run verrà ignorato, ma se usato in %run notebook continuerà l'esecuzione.
- Le proprietà di configurazione Spark standard devono essere usate nel corpo "conf". Il riferimento di primo livello per le proprietà di configurazione di Spark non è supportato.
- Alcune proprietà Spark speciali, tra cui "spark.driver.cores", "spark.executor.cores", "spark.driver.memory", "spark.executor.memory", "spark.executor.instances" non verranno applicate nel corpo "conf".
Configurazione della sessione con parametri dalla pipeline
La configurazione della sessione con parametri consente di sostituire il valore in %%configure magic con parametri di esecuzione della pipeline (attività notebook). 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:
{
"activityParameterName": "paramterNameInPipelineNotebookActivity",
"defaultValue": "defaultValueIfNoParamterFromPipelineNotebookActivity"
}
%%configure
{
"driverCores":
{
"activityParameterName": "driverCoresFromNotebookActivity",
"defaultValue": 4
},
"conf":
{
"livy.rsc.sql.num-rows":
{
"activityParameterName": "rows",
"defaultValue": "2000"
}
}
}
Il notebook usa il valore predefinito se si esegue un notebook in modalità interattiva direttamente o se nessun parametro corrispondente a "activityParameterName" viene assegnato dall'attività Notebook della pipeline.
Durante la modalità di esecuzione della pipeline, è possibile configurare le impostazioni dell'attività Notebook della pipeline come indicato di seguito:
Se si desidera modificare la configurazione della sessione, il nome dei parametri dell'attività Notebook della pipeline deve essere uguale a activityParameterName nel notebook. Quando si esegue questa pipeline, in questo esempio driverCore in %%configure verrà sostituito da 8 e livy.rsc.sql.num-rows verrà sostituito da 4000.
Nota
Se la pipeline di esecuzione non è riuscita a causa dell'uso di questo nuovo magic %%configure, è possibile controllare altre informazioni sull'errore eseguendo %%configure magic cell nella modalità interattiva del notebook.
Importare i dati in un notebook
È possibile caricare i dati da Archiviazione BLOB di Azure, Azure Data Lake Store Gen 2 e dal pool SQL, come illustrato negli esempi di codice riportati di seguito.
Leggere un CSV da Azure Data Lake Store Gen2 come un DataFrame di Spark
from pyspark.sql import SparkSession
from pyspark.sql.types import *
account_name = "Your account name"
container_name = "Your container name"
relative_path = "Your path"
adls_path = 'abfss://%s@%s.dfs.core.windows.net/%s' % (container_name, account_name, relative_path)
df1 = spark.read.option('header', 'true') \
.option('delimiter', ',') \
.csv(adls_path + '/Testfile.csv')
Leggere un CSV da Archiviazione BLOB di Azure come un DataFrame di Spark
from pyspark.sql import SparkSession
# Azure storage access info
blob_account_name = 'Your account name' # replace with your blob name
blob_container_name = 'Your container name' # replace with your container name
blob_relative_path = 'Your path' # replace with your relative folder path
linked_service_name = 'Your linked service name' # replace with your linked service name
blob_sas_token = mssparkutils.credentials.getConnectionStringOrCreds(linked_service_name)
# Allow SPARK to access from Blob remotely
wasb_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)
spark.conf.set('fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name), blob_sas_token)
print('Remote blob path: ' + wasb_path)
df = spark.read.option("header", "true") \
.option("delimiter","|") \
.schema(schema) \
.csv(wasbs_path)
Leggere i dati dall'account di archiviazione primario
È possibile accedere direttamente ai dati nell'account di archiviazione primario. Non è necessario fornire le chiavi private. In Esplora dati fare clic con il pulsante destro del mouse su un file e selezionare Nuovo notebook per visualizzare un nuovo notebook con l'estrazione dati generata automaticamente.
Widget IPython
I widget sono oggetti Python con eventi che hanno una rappresentazione nel browser, spesso sotto forma di comando come uno dispositivo di scorrimento, una casella di testo e così via. I widget IPython funzionano solo nell'ambiente Python, non è ancora supportato in altri linguaggi (ad esempio Scala, SQL, C#).
Per usare i widget IPython
È prima necessario importare il modulo
ipywidgets
per usare il framework Widget Jupyter.import ipywidgets as widgets
È possibile usare la funzione di primo livello
display
per eseguire il rendering di un widget o lasciare un'espressione di tipo widget nell'ultima cella della riga di codice.slider = widgets.IntSlider() display(slider)
slider = widgets.IntSlider() slider
Eseguire la cella, il widget viene visualizzato nell'area di output.
È possibile usare diverse chiamate
display()
per eseguire il rendering della stessa istanza del widget più volte; tuttavia, le suddette rimangono sincronizzate tra loro.slider = widgets.IntSlider() display(slider) display(slider)
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)
Widget supportati
Tipo di widget | Widget |
---|---|
Widget numerici | IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText |
Widget booleani | ToggleButton, Checkbox, Valid |
Widget di selezione | Dropdown, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple |
Widget stringa | Testo, Area di testo, Combobox, Password, Etichetta, HTML, Matematica HTML, Immagine, Pulsante |
Widget di riproduzione (Animation) | Selezione data, Selezione colori, Controller |
Widget contenitore/layout | Box, HBox, VBox, GridBox, Accordion, Schede, Impilato |
Limitazioni note
I widget seguenti non sono ancora supportati, è possibile seguire la soluzione alternativa corrispondente come indicato di seguito:
Funzionalità Soluzione alternativa Output
widgetÈ invece possibile usare la funzione print()
per scrivere testo in stdout.widgets.jslink()
È possibile usare la funzione widgets.link()
per collegare due widget simili.FileUpload
widgetNon è ancora supportato. La funzione globale
display
fornita da Synapse non supporta la visualizzazione di diversi widget in una sola chiamata (ovverodisplay(a, b)
), a differenza della funzione IPythondisplay
.Se si chiude un notebook che contiene Widget IPython, non sarà possibile visualizzare o interagire con esso fino a quando non si esegue di nuovo la cella corrispondente.
Salvare i notebook
È possibile salvare un singolo notebook o tutti i notebook nell'area di lavoro.
Per salvare le modifiche apportate a un singolo notebook, selezionare il pulsante Pubblica sulla barra dei comandi del notebook.
Per salvare tutti i notebook nell'area di lavoro, selezionare il pulsante Pubblica tutti i sulla barra dei comandi dell'area di lavoro.
Nelle proprietà del notebook è possibile specificare se includere l'output della cella durante il salvataggio.
Comandi magic
È possibile usare i comandi magic noti di Jupyter nei notebook di Synapse. Esaminare l'elenco seguente per i comandi magic correnti disponibili. Inviaci i tuoi casi d'uso su GitHub per poter continuare a creare ulteriori comandi magic per soddisfare le tue esigenze.
Nota
Nella pipeline Synapse sono supportati solo i comandi magic seguenti: %%pyspark, %%spark, %%csharp, %%sql.
Magic riga disponibili: %lsmagic, %time, %timeit, %history, %run, %load
Comandi magic disponibili per le celle: %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%html, %%configure
Riferimento a notebook non pubblicati
Il notebook non pubblicato di riferimento è utile quando si desidera eseguire il debug "localmente"; quando si abilita questa funzionalità, l'esecuzione del notebook recupera il contenuto corrente nella cache Web; se si esegue una cella che include un'istruzione notebook di riferimento, si fa riferimento ai notebook presentati nel browser notebook corrente, piuttosto che a una versione salvata nel cluster, il che significa che le modifiche nell'editor di notebook possono essere referenziate immediatamente da altri notebook senza che sia necessario pubblicarle (modalità Live) o eseguire il loro commit (modalità Git); con questo approccio, è possibile evitare facilmente che le librerie comuni vengano inquinate durante lo sviluppo o il processo di debug.
È possibile abilitare il notebook di riferimento non pubblicato nel pannello Proprietà:
Per un confronto di casi diversi, vedere la tabella seguente:
Si noti che %run e mssparkutils.notebook.run hanno lo stesso comportamento qui. Qui viene usato %run
come esempio.
Case | Disabilitazione | Abilitare |
---|---|---|
Modalità Live | ||
- Nb1 (pubblicato) %run Nb1 |
Eseguire la versione pubblicata di Nb1 | Eseguire la versione pubblicata di Nb1 |
- Nb1 (nuovo) %run Nb1 |
Error | Eseguire il nuovo Nb1 |
- Nb1 (pubblicato in precedenza, modificato) %run Nb1 |
Eseguire la versione pubblicata di Nb1 | Eseguire la versione modificata di Nb1 |
Modalità Git | ||
- Nb1 (pubblicato) %run Nb1 |
Eseguire la versione pubblicata di Nb1 | Eseguire la versione pubblicata di Nb1 |
- Nb1 (nuovo) %run Nb1 |
Error | Eseguire il nuovo Nb1 |
- Nb1 (non pubblicato, sottoposto a commit) %run Nb1 |
Error | Esecuzione sottoposta a commit Nb1 |
- Nb1 (pubblicato in precedenza, sottoposto a commit) %run Nb1 |
Eseguire la versione pubblicata di Nb1 | Eseguire la versione di cui è stato eseguito il commit di Nb1 |
- Nb1 (pubblicato in precedenza, nuovo in ramo corrente) %run Nb1 |
Eseguire la versione pubblicata di Nb1 | Eseguire il nuovo Nb1 |
- Nb1 (non pubblicato, precedentemente sottoposto a commit, modificato) %run Nb1 |
Error | Eseguire la versione modificata di Nb1 |
- Nb1 (pubblicato e sottoposto a commit in precedenza, modificato) %run Nb1 |
Eseguire la versione pubblicata di Nb1 | Eseguire la versione modificata di Nb1 |
Conclusione
- Se disabilitato, eseguire sempre la versione pubblicata.
- Se abilitata, l'esecuzione di riferimento adotterà sempre la versione corrente del notebook che è possibile visualizzare dall'esperienza utente del notebook.
Gestione delle session attive
Ora è possibile utilizzare nuovamente le sessioni di notebook in modo pratico senza dover avviarne di nuove. Il notebook di Synapse supporta ora la gestione delle sessioni attive nell'elenco Gestisci sessioni. È possibile visualizzare tutte le sessioni nell'area di lavoro corrente avviata dal notebook.
Nell'elenco Sessioni attive è possibile visualizzare le informazioni sulla sessione e il notebook corrispondente attualmente collegato alla sessione. È possibile eseguire Scollega con notebook, arrestare la sessione e visualizzare il monitoraggio da qui. Inoltre, è possibile connettere facilmente il notebook selezionato a una sessione attiva nell'elenco avviato da un altro notebook; la sessione viene scollegata dal notebook precedente (se non è inattiva) e collegata a quello corrente.
Registrazione di Python nel notebook
È possibile trovare i log Python e impostare livelli di registro e formato differenti seguendo il codice di esempio qui 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 Synapse 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
Integrare un notebook
Aggiungere un notebook a una pipeline
Selezionare il pulsante Aggiungi alla pipeline nell'angolo in alto a destra per aggiungere un notebook a una pipeline esistente o creare una nuova pipeline.
Designare una cella di parametri
Per parametrizzare il notebook, selezionare i puntini di sospensione (...) per accedere ad altri comandi nella barra degli strumenti della cella. Selezionare quindi Attiva/Disattiva la cella di parametri per designare la cella come cella di parametri.
Azure Data Factory cerca la cella di parametri e tratta questa cella come valori predefiniti 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à del notebook di Synapse. Dopo aver aggiunto l'attività al canvas della pipeline, sarà possibile impostare i valori dei parametri nella sezione Parametri di base della scheda Impostazioni.
Quando si assegnano i valori dei parametri, è possibile usare il linguaggio delle espressioni della pipeline o le variabili di sistema.
Combinazioni di tasti
Analogamente ai notebook di Jupyter, i notebook di Synapse 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 Synapse supportano le due modalità seguenti per una cella di codice specificata, ovvero la modalità di comando e la modalità di modifica.
Una cella è in modalità di comando quando non è presente un 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 un punto all'esterno dell'area dell'editor di una cella.La modalità di modifica è indicata da un cursore di testo che richiede di digitare nell'area dell'editor. Quando una cella si trova in modalità di modifica, è possibile digitare nella cella. Per passare alla modalità di modifica, premere
Enter
o usare il mouse per selezionare l'area dell'editor di una cella.
Combinazione di tasti in modalità comando
Azione | Collegamenti ai notebook di Synapse |
---|---|
Eseguire la cella corrente e selezionare in basso | MAIUSC + Invio |
Eseguire la cella corrente e inserire in basso | ALT + INVIO |
Esegui cella corrente | Ctrl + INVIO |
Selezionare la cella in alto | Freccia SU |
Selezionare la cella in basso | Giù |
Seleziona la cella precedente | K |
Seleziona 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 esplorare ed eseguire più facilmente il codice nei notebook di Synapse in modalità di modifica.
Azione | Collegamenti ai notebook di Synapse |
---|---|
Spostare il cursore in alto | Freccia SU |
Spostare in cursore in basso | Giù |
Annulla | CTRL + Z |
Ripeti | CTRL + Y |
Inserimento/Rimozione di commenti | CTRL + / |
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 |
Passaggi successivi
- Eseguire il checkout dei notebook di esempio di Synapse
- Avvio rapido: creare un pool di Apache Spark in Azure Synapse Analytics con gli strumenti Web
- Che cos'è Apache Spark in Azure Synapse Analytics
- Usare .NET per Apache Spark con Azure Synapse Analytics
- Documentazione di .NET per Apache Spark
- Azure Synapse Analytics
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per