Synapse-notebooks maken, ontwikkelen en onderhouden in Azure Synapse Analytics

Een Synapse-notebook is een webinterface waarmee u bestanden kunt maken die live code, visualisaties en verhalende tekst bevatten. Notebooks zijn een goede plek om ideeën te valideren en snelle experimenten te gebruiken om inzicht te krijgen in uw gegevens. Notebooks worden ook veel gebruikt in gegevensvoorbereiding, gegevensvisualisatie, machine learning en andere big data-scenario's.

Met een Synapse-notebook kunt u het volgende doen:

  • Ga aan de slag met nul installatie-inspanningen.
  • Gegevens beveiligen met ingebouwde bedrijfsbeveiligingsfuncties.
  • Analyseer gegevens in onbewerkte indelingen (CSV, txt, JSON, enzovoort), verwerkte bestandsindelingen (parquet, Delta Lake, ORC, enzovoort) en SQL-gegevensbestanden in tabelvorm met Spark en SQL.
  • Wees productief met verbeterde ontwerpmogelijkheden en ingebouwde gegevensvisualisatie.

In dit artikel wordt beschreven hoe u notitieblokken gebruikt in Synapse Studio.

Een notebook maken

Er zijn twee manieren om een notitieblok te maken. U kunt een nieuw notitieblok maken of een bestaand notitieblok importeren in een Synapse-werkruimte vanuit de Objectverkenner. Synapse-notebooks herkennen standaard Jupyter Notebook IPYNB-bestanden.

Schermopname van het maken van een nieuw notitieblok of het importeren van een notitieblok

Notebooks ontwikkelen

Notebooks bestaan uit cellen, die afzonderlijke code- of tekstblokken zijn die onafhankelijk of als groep kunnen worden uitgevoerd.

We bieden uitgebreide bewerkingen voor het ontwikkelen van notebooks:

Een cel toevoegen

Er zijn meerdere manieren om een nieuwe cel aan uw notitieblok toe te voegen.

  1. Beweeg de muisaanwijzer over de ruimte tussen twee cellen en selecteer Code of Markdown. Schermopname van de knop Add-azure-notebook-cell-with-cell

  2. Gebruik aznb-sneltoetsen onder de opdrachtmodus. Druk op A om een cel boven de huidige cel in te voegen. Druk op B om een cel onder de huidige cel in te voegen.


Een primaire taal instellen

Synapse-notebooks ondersteunen vier Apache Spark-talen:

  • PySpark (Python)
  • Spark (Scala)
  • Spark SQL
  • .NET Spark (C#)
  • SparkR (R)

U kunt de primaire taal instellen voor nieuwe toegevoegde cellen in de vervolgkeuzelijst in de bovenste opdrachtbalk.

Schermopname van de standaard-synapse-taal

Meerdere talen gebruiken

U kunt meerdere talen in één notebook gebruiken door de juiste magic-opdracht voor taal aan het begin van een cel op te geven. De volgende tabel bevat de magic-opdrachten voor het wisselen van celtalen.

Magic-opdracht Taal Description
%%pyspark Python Voer een Python-query uit op Spark-context.
%%spark Scala Voer een Scala-query uit op Spark-context.
%%sql SparkSQL Voer een SparkSQL-query uit op Spark-context.
%%csharp .NET voor Spark C # Voer een .NET voor Spark C# -query uit op Spark-context.
%%sparkr R Voer een R-query uit op Spark-context.

De volgende afbeelding is een voorbeeld van hoe u een PySpark-query kunt schrijven met behulp van de magic-opdracht %%pyspark of een SparkSQL-query met de %%sql-magic-opdracht in een Spark(Scala) -notebook. U ziet dat de primaire taal voor het notebook is ingesteld op pySpark.

Schermopname van Magic-opdrachten van Synapse spark

Tijdelijke tabellen gebruiken om te verwijzen naar gegevens in verschillende talen

U kunt niet rechtstreeks verwijzen naar gegevens of variabelen in verschillende talen in een Synapse-notebook. In Spark kan naar een tijdelijke tabel worden verwezen in verschillende talen. Hier volgt een voorbeeld van het lezen van een Scala DataFrame in PySpark en SparkSQL het gebruik van een Spark-tijdelijke tabel als tijdelijke oplossing.

  1. Lees in cel 1 een DataFrame van een SQL-poolconnector met behulp van Scala en maak een tijdelijke tabel.

    %%spark
    val scalaDataFrame = spark.read.sqlanalytics("mySQLPoolDatabase.dbo.mySQLPoolTable")
    scalaDataFrame.createOrReplaceTempView( "mydataframetable" )
    
  2. Voer in cel 2 een query uit op de gegevens met behulp van Spark SQL.

    %%sql
    SELECT * FROM mydataframetable
    
  3. Gebruik in cel 3 de gegevens in PySpark.

    %%pyspark
    myNewPythonDataFrame = spark.sql("SELECT * FROM mydataframetable")
    

IDE-stijl IntelliSense

Synapse-notebooks zijn geïntegreerd met de Monaco-editor om in IDE-stijl IntelliSense naar de celeditor te brengen. Syntaxismarkering, foutmarkering en automatische code-voltooiingen helpen u code te schrijven en problemen sneller te identificeren.

De IntelliSense-functies bevinden zich op verschillende volwassenheidsniveaus voor verschillende talen. Gebruik de volgende tabel om te zien wat er wordt ondersteund.

Talen Syntaxismarkering Syntaxisfoutmarkering Voltooiing van syntaxiscode Voltooiing van variabele code Voltooiing van systeemfunctiecode Voltooiing van gebruikersfunctiecode Smart Indent Code Folding
PySpark (Python) Ja Ja Ja Ja Ja Ja Ja Ja
Spark (Scala) Ja Ja Ja Ja Ja Ja - Ja
SparkSQL Ja Ja Ja Ja Ja - - -
.NET voor Spark (C#) Ja Ja Ja Ja Ja Ja Ja Ja

Notitie

Er is een actieve Spark-sessie vereist om te profiteren van de variabele codevoltooiing, voltooiing van systeemfunctiecode, voltooiing van gebruikersfunctiecode voor .NET voor Spark (C#).

Codefragmenten

Synapse-notebooks bieden codefragmenten waarmee u gemakkelijker veelgebruikte codepatronen kunt invoeren, zoals het configureren van uw Spark-sessie, het lezen van gegevens als een Spark DataFrame of het tekenen van grafieken met matplotlib, enzovoort.

Fragmenten worden weergegeven in sneltoetsen van de IDE-stijl IntelliSense gecombineerd met andere suggesties. De inhoud van het codefragment wordt uitgelijnd met de codeceltaal. U kunt beschikbare fragmenten zien door fragment te typen of trefwoorden te typen in de titel van het codefragment in de codeceleditor. Als u bijvoorbeeld lezen typt, ziet u de lijst met fragmenten om gegevens uit verschillende gegevensbronnen te lezen.

GIF-animatie van Synapse-codefragmenten

Tekstcel opmaken met werkbalkknoppen

U kunt de opmaakknoppen op de werkbalk tekstcellen gebruiken om algemene Markdown-acties uit te voeren. Het bevat vetgedrukte tekst, cursieve tekst, alinea/kopteksten via een vervolgkeuzelijst, code invoegen, ongeordend lijst invoegen, geordende lijst invoegen, hyperlink invoegen en afbeelding invoegen vanuit URL.

Schermopname van de werkbalk van de Synapse-tekstcel


Bewerking van cel ongedaan maken/opnieuw uitvoeren

Selecteer de knop Opnieuw uitvoeren / ongedaan maken of druk op Z / Shift+Z om de meest recente celbewerkingen in te trekken. U kunt nu de laatste 10 historische celbewerkingen ongedaan maken/opnieuw uitvoeren.

Schermopname van Synapse cellen van aznb ongedaan maken

Ondersteunde bewerkingen voor ongedaan maken van cellen:

  • Cel invoegen/verwijderen: u kunt de verwijderingsbewerkingen intrekken door Ongedaan maken te selecteren. De tekstinhoud wordt samen met de cel bewaard.
  • Cel opnieuw ordenen.
  • Schakel de parameter in.
  • Converteren tussen codecel en Markdown-cel.

Notitie

Bewerkingen in tekst in de cel en bewerkingen voor commentaar in codecellen zijn niet ongedaan te maken. U kunt nu de laatste 10 historische celbewerkingen ongedaan maken/opnieuw uitvoeren.


Opmerking bij codecel

  1. Selecteer de knop Opmerkingen op de werkbalk van het notitieblok om het opmerkingenvenster te openen.

    Schermafbeelding van de knop Opmerking van Synapse

  2. Selecteer code in de codecel, klik op Nieuwin het opmerkingenvenster, voeg opmerkingen toe en klik vervolgens op de knop Opmerking posten om op te slaan.

    Schermopname van nieuwe opmerking in Synapse

  3. U kunt de discussielijn Bewerken, Thread oplossen of Thread verwijderen uitvoeren door naast uw opmerking op de knop Meer te klikken.

    Schermopname van opmerking bij bewerken in Synapse


Een cel verplaatsen

Klik aan de linkerkant van een cel en sleep deze naar de gewenste positie. GIF-animatie van Synapse-cellen verplaatsen


Een cel verwijderen

Als u een cel wilt verwijderen, selecteert u de knop Verwijderen aan de rechterkant van de cel.

U kunt ook sneltoetsen gebruiken in de opdrachtmodus. Druk op Shift+D om de huidige cel te verwijderen.

Schermopname van azure-notebook-delete-a-cell


Een celinvoer samenvouwen

Selecteer het beletselteken (...) op de celwerkbalk en verberg invoer om de invoer van de huidige cel samen te vouwen. Als u deze wilt uitvouwen, selecteert u de invoer weergeven terwijl de cel is samengevouwen.

GIF-animatie van azure-notebook-collapse-cell-input


Een celuitvoer samenvouwen

Selecteer het beletselteken (...) op de celwerkbalk en verberg de uitvoer om de uitvoer van de huidige cel samen te vouwen. Als u deze wilt uitvouwen, selecteert u de uitvoer weergeven terwijl de uitvoer van de cel is verborgen.

GIF-animatie van azure-notebook-collapse-cell-output


Overzicht van notitieblok

De overzichten (inhoudsopgave) bevatten de eerste Markdown-koptekst van een Markdown-cel in een zijbalkvenster voor snelle navigatie. De zijbalk Overzichten kan op de best mogelijke manier worden aangepast en samengevouwen. U kunt de knop Overzicht op de opdrachtbalk van het notitieblok selecteren om de zijbalk te openen of te verbergen

Schermopname van azure-notebook-outline


Notebooks gebruiken

U kunt de codecellen in uw notebook afzonderlijk of allemaal tegelijk uitvoeren. De status en voortgang van elke cel worden weergegeven in het notebook.

Een cel uitvoeren

Er zijn verschillende manieren om de code in een cel uit te voeren.

  1. Beweeg de muisaanwijzer over de cel die u wilt uitvoeren en selecteer de knop Cel uitvoeren of druk op Ctrl+Enter.

    Schermopname van run-cell-1

  2. Gebruik sneltoetsen onder de opdrachtmodus. Druk op Shift+Enter om de huidige cel uit te voeren en selecteer de onderstaande cel. Druk op Alt+Enter om de huidige cel uit te voeren en een nieuwe cel hieronder in te voegen.


Alle cellen uitvoeren

Selecteer de knop Alles uitvoeren om alle cellen in het huidige notitieblok op volgorde uit te voeren.

Schermopname van run-all-cells

Alle cellen boven of onder uitvoeren

Vouw de vervolgkeuzelijst uit vanaf de knop Alles uitvoeren en selecteer vervolgens Cellen uitvoeren hierboven om alle cellen boven de huidige in volgorde uit te voeren. Selecteer Cellen uitvoeren hieronder om alle cellen onder de huidige in volgorde uit te voeren.

Schermopname van azure-notebook-run-cells-above-or-below


Alle actieve cellen annuleren

Selecteer de knop Alles annuleren om de actieve cellen of cellen te annuleren die in de wachtrij wachten. Schermopname van azure-notebook-cancel-all-cells


Verwijzing naar notitieblok

U kunt de magic-opdracht gebruiken %run <notebook path> om te verwijzen naar een ander notitieblok binnen de context van het huidige notitieblok. Alle variabelen die in het referentienotitieblok zijn gedefinieerd, zijn beschikbaar in het huidige notitieblok. %run Magic Command ondersteunt geneste oproepen, maar biedt geen ondersteuning voor recursieve oproepen. U ontvangt een uitzondering als de instructiediepte groter is dan vijf.

Bijvoorbeeld: %run /<path>/Notebook1 { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }.

Naslaginformatie over notebooks werkt zowel in de interactieve modus als in de Synapse-pijplijn.

Notitie

  • %run de opdracht ondersteunt momenteel alleen om een absoluut pad of notebooknaam door te geven als parameter, relatief pad wordt niet ondersteund.
  • %run de opdracht ondersteunt momenteel alleen 4 parameterwaardetypen: int, float, bool, , string, variabele vervangingsbewerking wordt niet ondersteund.
  • De notitieblokken waarnaar wordt verwezen, moeten worden gepubliceerd. U moet de notitieblokken publiceren om ernaar te verwijzen, tenzij Verwijzing niet-gepubliceerd notitieblok is ingeschakeld. Synapse Studio herkent de niet-gepubliceerde notitieblokken niet vanuit de Git-opslagplaats.
  • Notebooks waarnaar wordt verwezen, ondersteunen geen verklaring dat diepte groter is dan vijf.

Variabeleverkenner

Synapse Notebook biedt een ingebouwde variabelenverkenner voor u om de lijst met de naam van de variabelen, het type, de lengte en de waarde in de huidige Spark-sessie voor PySpark-cellen (Python) weer te geven. Meer variabelen worden automatisch weergegeven wanneer ze in de codecellen worden gedefinieerd. Als u op elke kolomkop klikt, worden de variabelen in de tabel gesorteerd.

U kunt de knop Variabelen op de opdrachtbalk van het notitieblok selecteren om de variabeleverkenner te openen of te verbergen.

Schermopname van azure-notebook-variable-explorer

Notitie

Variable Explorer ondersteunt alleen Python.


Celstatusindicator

De uitvoeringsstatus van een stapsgewijze cel wordt weergegeven onder de cel om u te helpen de huidige voortgang te zien. Zodra de uitvoering van de cel is voltooid, wordt een uitvoeringsoverzicht met de totale duur en eindtijd weergegeven en daar bewaard voor toekomstig gebruik.

Schermopname van celstatus

Spark-voortgangsindicator

Synapse Notebook is uitsluitend gebaseerd op Spark. Codecellen worden op afstand uitgevoerd in de serverloze Apache Spark-pool. Er wordt een voortgangsindicator voor Spark-taken weergegeven met een realtime voortgangsbalk om inzicht te krijgen in de uitvoeringsstatus van de taak. Het aantal taken per taak of fase helpt u bij het identificeren van het parallelle niveau van uw Spark-taak. U kunt ook dieper inzoomen op de Spark-gebruikersinterface van een specifieke taak (of fase) door de koppeling in de taaknaam (of fase) te selecteren.

Schermopname van spark-progress-indicator

Configuratie van Spark-sessie

U kunt de time-outduur, het aantal en de grootte van uitvoerders opgeven die moeten worden opgegeven voor de huidige Spark-sessie in de sessie Configureren. Start de Spark-sessie opnieuw op om configuratiewijzigingen van kracht te laten worden. Alle notebookvariabelen in de cache worden gewist.

U kunt ook een configuratie maken vanuit de Apache Spark-configuratie of een bestaande configuratie selecteren. Raadpleeg het Apache Spark-configuratiebeheer voor meer informatie.

Schermopname van sessiebeheer

Magic-opdracht voor spark-sessieconfiguratie

U kunt ook spark-sessie-instellingen opgeven via een magic-opdracht %%configureren. De Spark-sessie moet opnieuw worden opgestart om het instellingeneffect te maken. U wordt aangeraden de %%-configuratie aan het begin van uw notebook uit te voeren. Hier volgt een voorbeeld. Raadpleeg https://github.com/cloudera/livy#request-body voor een volledige lijst met geldige parameters.

%%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" 
    }
}

Notitie

  • 'DriverMemory' en 'ExecutorMemory' worden aanbevolen om in %%dezelfde waarde in %%te configureren, dus gebruik "driverCores" en "executorCores".
  • U kunt %%configureren in Synapse-pijplijnen, maar als deze niet is ingesteld in de eerste codecel, mislukt de pijplijnuitvoering omdat de sessie niet opnieuw kan worden opgestart.
  • De %%-configuratie die wordt gebruikt in mssparkutils.notebook.run wordt genegeerd, maar wordt gebruikt in %run notebook blijft worden uitgevoerd.
  • De standaardconfiguratie-eigenschappen van Spark moeten worden gebruikt in de hoofdtekst 'conf'. We bieden geen ondersteuning voor referentie op het eerste niveau voor de Spark-configuratie-eigenschappen.
  • Sommige speciale spark-eigenschappen, waaronder 'spark.driver.cores', 'spark.executor.cores', 'spark.driver.memory', 'spark.executor.memory', 'spark.executor.instances', worden niet van kracht in de hoofdtekst 'conf'.

Configuratie van geparameteriseerde sessie vanuit pijplijn

Met parameterconfiguratie kunt u de waarde in %%magic vervangen door parameters voor pijplijnuitvoering (Notebook-activiteit). Wanneer u %%codecel voorbereidt, kunt u standaardwaarden (ook configureerbaar, 4 en 2000" in het onderstaande voorbeeld) overschrijven met een object als volgt:

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

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

Notebook gebruikt de standaardwaarde als u een notebook rechtstreeks in de interactieve modus uitvoert of geen parameter die overeenkomt met activityParameterName, wordt gegeven vanuit de pijplijnnotitieblokactiviteit.

Tijdens de pijplijnuitvoeringsmodus kunt u instellingen voor de activiteit Notebook van de pijplijn configureren, zoals hieronder: Schermopname van de configuratie van een geparameteriseerde sessie

Als u de sessieconfiguratie wilt wijzigen, moet de naam van parameters voor de pijplijnnotitieblokactiviteit hetzelfde zijn als activityParameterName in het notebook. Wanneer u deze pijplijn uitvoert, worden in dit voorbeeld driverCores in %%configure vervangen door 8 en worden livy.rsc.sql.num-rows vervangen door 4000.

Notitie

Als de pijplijn voor uitvoeren is mislukt vanwege het gebruik van deze nieuwe %%configure magic, kunt u meer foutinformatie controleren door %%magic cell uit te voeren in de interactieve modus van het notebook.

Gegevens naar een notebook brengen

U kunt gegevens laden uit Azure Blob Storage, Azure Data Lake Store Gen 2 en SQL-pool, zoals wordt weergegeven in de onderstaande codevoorbeelden.

Een CSV van Azure Data Lake Store Gen2 lezen als een Spark DataFrame

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

Een CSV van Azure Blob Storage lezen als een Spark DataFrame


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)

Gegevens lezen uit het primaire opslagaccount

U hebt rechtstreeks toegang tot gegevens in het primaire opslagaccount. U hoeft de geheime sleutels niet op te geven. Klik in Data Explorer met de rechtermuisknop op een bestand en selecteer Nieuw notitieblok om een nieuw notitieblok te zien met automatisch gegenereerde gegevensextractor.

Schermopname van gegevens naar cel

IPython Widgets

Widgets zijn gebeurtenisvolle Python-objecten die een weergave in de browser hebben, vaak als een besturingselement zoals een schuifregelaar, tekstvak, enzovoort. IPython Widgets werkt alleen in de Python-omgeving, het wordt nog niet ondersteund in andere talen (bijvoorbeeld Scala, SQL, C#).

IPython Widget gebruiken

  1. U moet eerst de module importeren ipywidgets om het Jupyter Widget-framework te gebruiken.

    import ipywidgets as widgets
    
  2. U kunt de functie op het hoogste niveau display gebruiken om een widget weer te geven of een expressie van het widgettype op de laatste regel codecel te laten staan.

    slider = widgets.IntSlider()
    display(slider)
    
    slider = widgets.IntSlider()
    slider
    
  3. Voer de cel uit. De widget wordt weergegeven in het uitvoergebied.

    Schermopname van de schuifregelaar ipython-widgets

  4. U kunt meerdere display() aanroepen gebruiken om hetzelfde widgetexemplaren meerdere keren weer te geven, maar ze blijven gesynchroniseerd met elkaar.

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

    Schermopname van de schuifregelaars voor ipython-widgets

  5. Als u twee widgets onafhankelijk van elkaar wilt weergeven, maakt u twee widgetexemplaren:

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

Ondersteunde widgets

Widgetstype Widgets
Numerieke widgets IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText
Booleaanse widgets Wisselknop, selectievakje, geldig
Selectiewidgets Vervolgkeuzelijst, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple
Tekenreekswidgets Tekst, tekstgebied, keuzelijst met invoervak, wachtwoord, label, HTML, HTML-wiskunde, afbeelding, knop
Widgets afspelen (animatie) Datumkiezer, Kleurkiezer, Controller
Container-/indelingswidgets Box, HBox, VBox, GridBox, Accordion, Tabs, Gestapeld

Bekende beperkingen

  1. De volgende widgets worden nog niet ondersteund. U kunt de bijbehorende tijdelijke oplossing volgen, zoals hieronder:

    Functionaliteit Tijdelijke oplossing
    Output Widget U kunt in plaats daarvan de functie gebruiken print() om tekst naar stdout te schrijven.
    widgets.jslink() U kunt de functie gebruiken widgets.link() om twee vergelijkbare widgets te koppelen.
    FileUpload Widget Nog niet ondersteund.
  2. Globale display functie die wordt geleverd door Synapse biedt geen ondersteuning voor het weergeven van meerdere widgets in 1 aanroep (dat wil bijvoorbeeld display(a, b)), wat verschilt van de functie IPython display .

  3. Als u een notitieblok sluit dat IPython Widget bevat, kunt u het niet zien of ermee werken totdat u de bijbehorende cel opnieuw uitvoert.


Notebooks opslaan

U kunt één notitieblok of alle notitieblokken in uw werkruimte opslaan.

  1. Als u wijzigingen wilt opslaan die u in één notitieblok hebt aangebracht, selecteert u de knop Publiceren op de opdrachtbalk van het notitieblok.

    Schermopname van publish-notebook

  2. Als u alle notitieblokken in uw werkruimte wilt opslaan, selecteert u de knop Alles publiceren op de opdrachtbalk van de werkruimte.

    Schermopname van publish-all

In de eigenschappen van het notebook kunt u configureren of de celuitvoer moet worden opgenomen bij het opslaan.

Schermopname van notebook-properties

Magic-opdrachten

U kunt vertrouwde Jupyter-magic-opdrachten gebruiken in Synapse-notebooks. Bekijk de volgende lijst als de huidige beschikbare magic-opdrachten. Vertel ons uw gebruiksvoorbeelden op GitHub , zodat we meer magic-opdrachten kunnen blijven ontwikkelen om aan uw behoeften te voldoen.

Notitie

Alleen de volgende magic-opdrachten worden ondersteund in de Synapse-pijplijn: %%pyspark, %%spark, %%csharp, %%sql.

Beschikbare regelmagie: %lsmagic, %time, %timeit, %history, %run, %load

Beschikbare celmagie: %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%html, %%configure


Verwijzing naar niet-gepubliceerd notitieblok

Verwijzing niet-gepubliceerd notitieblok is handig als u lokaal fouten wilt opsporen. Wanneer u deze functie inschakelt, haalt de notebookuitvoering de huidige inhoud op in de webcache. Als u een cel uitvoert met inbegrip van een instructie voor verwijzingsnotitieblokken, verwijst u naar de presentatienotitieblokken in de huidige notebookbrowser in plaats van naar een opgeslagen versie in het cluster, wat betekent dat de wijzigingen in de notebook-editor onmiddellijk door andere notitieblokken kunnen worden verwezen zonder te hoeven worden gepubliceerd (livemodus) of doorgevoerd (Git-modus), door gebruik te maken van deze benadering, kunt u eenvoudig voorkomen dat algemene bibliotheken worden vervuild tijdens het ontwikkelen of opsporen van fouten.

U kunt verwijzing voor niet-gepubliceerd notitieblok inschakelen vanuit het deelvenster Eigenschappen:

Schermopname van notebook-reference

Raadpleeg de onderstaande tabel voor verschillende gevallen:

U ziet dat %run en mssparkutils.notebook.run hier hetzelfde gedrag heeft. We gebruiken %run hier als voorbeeld.

Case Uitschakelen Inschakelen
Livemodus
- Nb1 (gepubliceerd)
%run Nb1
Gepubliceerde versie van Nb1 uitvoeren Gepubliceerde versie van Nb1 uitvoeren
- Nb1 (nieuw)
%run Nb1
Fout Nieuwe Nb1 uitvoeren
- Nb1 (eerder gepubliceerd, bewerkt)
%run Nb1
Gepubliceerde versie van Nb1 uitvoeren Bewerkte versie van Nb1 uitvoeren
Git-modus
- Nb1 (gepubliceerd)
%run Nb1
Gepubliceerde versie van Nb1 uitvoeren Gepubliceerde versie van Nb1 uitvoeren
- Nb1 (nieuw)
%run Nb1
Fout Nieuwe Nb1 uitvoeren
- Nb1 (niet gepubliceerd, doorgevoerd)
%run Nb1
Fout Vastgelegde nb1 uitvoeren
- Nb1 (eerder gepubliceerd, doorgevoerd)
%run Nb1
Gepubliceerde versie van Nb1 uitvoeren Vastgelegde versie van Nb1 uitvoeren
- Nb1 (eerder gepubliceerd, nieuw in huidige vertakking)
%run Nb1
Gepubliceerde versie van Nb1 uitvoeren Nieuwe Nb1 uitvoeren
- Nb1 (niet gepubliceerd, eerder doorgevoerd, bewerkt)
%run Nb1
Fout Bewerkte versie van Nb1 uitvoeren
- Nb1 (eerder gepubliceerd en doorgevoerd, bewerkt)
%run Nb1
Gepubliceerde versie van Nb1 uitvoeren Bewerkte versie van Nb1 uitvoeren

Conclusie

  • Als deze optie is uitgeschakeld, voert u altijd een gepubliceerde versie uit.
  • Als deze optie is ingeschakeld, is prioriteit: bewerkt/nieuw > doorgevoerd > gepubliceerd.

Actief sessiebeheer

U kunt uw notebooksessies nu gemakkelijk opnieuw gebruiken zonder dat u nieuwe sessies hoeft te starten. Synapse Notebook biedt nu ondersteuning voor het beheren van uw actieve sessies in de lijst Sessies beheren . U kunt alle sessies in de huidige werkruimte zien die door u zijn gestart vanuit het notebook.

Schermopname van notebook-manage-sessions

In de lijst Actieve sessies ziet u de sessiegegevens en het bijbehorende notitieblok dat momenteel aan de sessie is gekoppeld. U kunt loskoppelen met notebook, de sessie stoppen en weergeven in bewaking vanaf hier. Bovendien kunt u het geselecteerde notitieblok eenvoudig verbinden met een actieve sessie in de lijst die is gestart vanuit een ander notitieblok, wordt de sessie losgekoppeld van het vorige notitieblok (als het niet inactief is) en vervolgens gekoppeld aan de huidige notitieblok.

Schermopname van notebook-sessions-list

Python-logboekregistratie in Notebook

U kunt Python-logboeken vinden en verschillende logboekniveaus en -indeling instellen volgens de onderstaande voorbeeldcode:

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

Een notebook integreren

Een notebook toevoegen aan een pijplijn

Selecteer de knop Toevoegen aan pijplijn in de rechterbovenhoek om een notebook toe te voegen aan een bestaande pijplijn of om een nieuwe pijplijn te maken.

Schermopname van Notebook toevoegen aan pijplijn

Een parametercel aanwijzen

Als u uw notebook wilt parameteriseren, selecteert u het beletselteken (...) om toegang te krijgen tot de meer opdrachten op de celwerkbalk. Selecteer vervolgens De parametercel in- /uitschakelen om de cel aan te wijzen als de parametercel.

Schermopname van azure-notebook-toggle-parameter


Azure Data Factory zoekt naar de parametercel en behandelt deze cel als standaardwaarden voor de parameters die zijn doorgegeven tijdens de uitvoering. De uitvoeringsengine voegt een nieuwe cel toe onder de parametercel met invoerparameters om de standaardwaarden te overschrijven.

Parameters uit een pijplijn toewijzen

Zodra u een notebook met parameters hebt gemaakt, kunt u dit uitvoeren vanuit een pijplijn met de Synapse Notebook-activiteit. Nadat u de activiteit hebt toegevoegd aan uw pijplijncanvas, kunt u de parameterswaarden instellen onder de sectie Basisparameters op het tabblad Instellingen .

Schermopname van Een parameter toewijzen

Wanneer u parameterwaarden toewijst, kunt u de taal van de pijplijnexpressie of systeemvariabelen gebruiken.

Sneltoetsen

Net als Jupyter Notebooks hebben Synapse-notebooks een modale gebruikersinterface. Het toetsenbord doet verschillende dingen, afhankelijk van de modus waarin de notebookcel zich bevindt. Synapse-notebooks ondersteunen de volgende twee modi voor een bepaalde codecel: opdrachtmodus en bewerkingsmodus.

  1. Een cel bevindt zich in de opdrachtmodus wanneer er geen tekstcursor wordt gevraagd om te typen. Wanneer een cel zich in de opdrachtmodus bevindt, kunt u het notitieblok als geheel bewerken, maar niet in afzonderlijke cellen typen. Voer de opdrachtmodus in door op de muis te drukken ESC of de muis te gebruiken om buiten het editorgebied van een cel te selecteren.

    Schermopname van opdrachtmodus

  2. De bewerkingsmodus wordt aangegeven door een tekstcursor die u vraagt om in het editorgebied te typen. Wanneer een cel zich in de bewerkingsmodus bevindt, kunt u in de cel typen. Voer de bewerkingsmodus in door met de muis te drukken Enter of te selecteren in het editorgebied van een cel.

    Schermopname van de bewerkingsmodus

Sneltoetsen onder opdrachtmodus

Bewerking Snelkoppelingen voor Synapse-notebooks
Voer de huidige cel uit en selecteer hieronder Shift+Enter
Voer de huidige cel uit en voeg hieronder in Alt+Enter
Huidige cel uitvoeren Ctrl+Enter
Cel erboven selecteren Omhoog
Cel eronder selecteren Buiten gebruik
Vorige cel selecteren K
Volgende cel selecteren J
Cel erboven invoegen A
Cel hieronder invoegen B
Geselecteerde cellen verwijderen Shift+D
Overschakelen naar de bewerkingsmodus Enter

Sneltoetsen onder bewerkingsmodus

Met behulp van de volgende toetsaanslagen kunt u eenvoudiger navigeren en code uitvoeren in Synapse-notebooks in de bewerkingsmodus.

Bewerking Snelkoppelingen voor Synapse-notebooks
Cursor omhoog verplaatsen Omhoog
Cursor omlaag verplaatsen Buiten gebruik
Ongedaan maken Ctrl+Z
Opnieuw uitvoeren Ctrl+Y
Opmerking/opmerkingen verwijderen Ctrl+ /
Woord verwijderen voor Ctrl+Backspace
Woord verwijderen na Ctrl+Verwijderen
Naar het begin van de cel gaan Ctrl+Home
Naar celeinde gaan Ctrl +End
Eén woord naar links gaan Ctrl+links
Eén woord naar rechts gaan Ctrl+rechts
Alles selecteren Ctrl+A
Streepje Ctrl +]
Dedent Ctrl+[
Overschakelen naar opdrachtmodus Esc

Volgende stappen