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

Een Synapse-notebook is een webinterface voor het maken van bestanden die livecode, visualisaties en verhalende tekst bevatten. Notebooks zijn een goede plaats om ideeën te valideren en snelle experimenten te gebruiken om inzichten uit uw gegevens te verkrijgen. Notebooks worden ook veel gebruikt voor gegevensvoorbereiding, gegevensvisualisatie, machine learning en andere big data-scenario's.

Met een Synapse-notebook kunt u het volgende doen:

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

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

Preview van de nieuwe notebookervaring

Het Synapse-team heeft het nieuwe notebookonderdeel in Synapse Studio om consistente notebookervaring te bieden voor Microsoft-klanten en de detecteerbaarheid, productiviteit, delen en samenwerking te maximaliseren. De nieuwe notebookervaring is klaar voor preview. Controleer de knop Preview-functies in de notebookwerkbalk om deze in te zetten. In de onderstaande tabel worden de functievergelijkingen tussen bestaande notebooks (ook wel 'klassieke notebook' genoemd) met de nieuwe preview-versie beschreven.

Functie Klassieke notebook Preview-notebook
%run Niet ondersteund
%history Niet ondersteund
%load Niet ondersteund
%%html Niet ondersteund
Slepen en neerzetten om een cel te verplaatsen Niet ondersteund
Overzicht (tabel met inhoud) Niet ondersteund
Variabeleverkenner Niet ondersteund
Tekstcel opmaken met knoppen op de werkbalk Niet beschikbaar
Celbewerking ongedaan maken Niet beschikbaar

Een notebook maken

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

importnotenote maken

Notebooks ontwikkelen

Notebooks bestaan uit cellen. Dit zijn afzonderlijke codeblokken of tekstblokken die onafhankelijk of als groep kunnen worden uitgevoerd.

Een cel toevoegen

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

  1. Vouw de knop linksboven + Cel uit en selecteer Codecel toevoegen of Tekstcel toevoegen.

    add-cell-with-cell-button

  2. Beweeg de muisaanwijzer over de spatie tussen twee cellen en selecteer Code toevoegen of Tekst toevoegen.

    add-cell-between-space

  3. Gebruik 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)
  • SparkSQL
  • .NET voor Apache Spark (C#)

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

default-synapse-language

Meerdere talen gebruiken

U kunt meerdere talen in één notebook gebruiken door de juiste magic-opdracht voor de taal aan het begin van een cel op te geven. De volgende tabel bevat de magic-opdrachten voor het schakelen tussen 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.

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 magic-opdracht %%sql in een Spark(Scala)-notebook. U ziet dat de primaire taal voor het notebook is ingesteld op pySpark.

Magic-opdrachten voor Synapse Spark

<a name="use-temp-tables-to-reference-data-across-languages">Tijdelijke tabellen gebruiken om te verwijzen naar gegevens in meerdere talen

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

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

    %%scala
    val scalaDataFrame = spark.read.sqlanalytics(&quot;mySQLPoolDatabase.dbo.mySQLPoolTable")
    scalaDataFrame.createOrReplaceTempView( "mydataframetable" )
    
  2. In Cel 2 kunt u een query uitvoeren 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")
    

IntelliSense in IDE-stijl

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

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

Talen Syntaxis markeren 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
SparkSQL Ja Ja - - - - - -
.NET voor Spark (C#) Yes - - - - - - -

Codefragmenten

Synapse-notebooks bieden codefragmenten waarmee u eenvoudiger 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 IntelliSense, gecombineerd met andere suggesties. De inhoud van de codefragmenten wordt uitgelijnd met de taal van de codecel. U kunt beschikbare codefragmenten bekijken door Fragment te typen, anders worden er trefwoorden weergegeven in de titel van het fragment in de codeceleditor. Als u bijvoorbeeld Lezen typt, ziet u de lijst met fragmenten voor het lezen van gegevens uit verschillende gegevensbronnen.

Synapse-codefragmenten

Tekstcel opmaken met knoppen op de werkbalk

U kunt de opmaakknoppen op de werkbalk van tekstcellen gebruiken om algemene Markdown-acties uit te voeren. Het omvat vetgedrukte tekst, het italiseren van tekst, het invoegen van codefragmenten, het invoegen van niet-geordende lijst, het invoegen van een geordende lijst en het invoegen van een afbeelding vanuit een URL.

Werkbalk van Synapse-tekstcel

Celbewerkingen ongedaan maken

Selecteer de knop Ongedaan maken of druk op Ctrl+Z om de meest recente celbewerking in te trekken. U kunt nu tot de laatste 20 historische celacties ongedaan maken.

Synapse-cellen ongedaan maken

Een cel verplaatsen

Selecteer het beletselmenu (...) voor toegang tot het menu andere celacties aan de rechterkant. Selecteer vervolgens Cel omhoog verplaatsen of Cel omlaag verplaatsen om de huidige cel te verplaatsen.

U kunt ook sneltoetsen gebruiken onder de opdrachtmodus. Druk op Ctrl+Alt+" om de huidige cel omhoog te verplaatsen. Druk op Ctrl+Alt+↓ om de huidige cel omlaag te verplaatsen.

move-a-cell

Een cel verwijderen

Als u een cel wilt verwijderen, selecteert u het beletselmenu (...) voor toegang tot het menu andere celacties helemaal rechts en selecteert u vervolgens Cel verwijderen.

U kunt ook sneltoetsen gebruiken onder de opdrachtmodus. Druk op D,D om de huidige cel te verwijderen.

delete-a-cell

Een celinvoer samenvgevouwen

Selecteer de pijlknop onder aan de huidige cel om deze samen te trekken. Selecteer de pijlknop terwijl de cel is samengevouwen om deze uit te vouwen.

collapse-cell-input

De uitvoer van een cel samenvgevouwen

Selecteer de knop voor samenvgevouwen uitvoer linksboven in de huidige celuitvoer om deze samen te samenvgevouwen. Selecteer celuitvoer tonen terwijl de uitvoer van de cel is samengevouwen om de uitvoer uit te vouwen.

collapse-cell-output

Notebookoverzicht

Wordt niet ondersteund.

Notebooks gebruiken

U kunt de codecellen in uw notebook afzonderlijk of in één keer 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.

    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 notebook opeenvolgend uit te voeren.

run-all-cells

Alle cellen boven of onder uitvoeren

Als u helemaal rechts toegang wilt krijgen tot het menu andere celacties, selecteert u het beletselletselmenu (...). Selecteer vervolgens Cellen uitvoeren hierboven om alle cellen boven de huidige opeenvolgend uit te voeren. Selecteer Cellen uitvoeren hieronder om alle cellen onder de huidige opeenvolgend uit te voeren.

run-cells-above-or-below

Alle lopende cellen annuleren

Selecteer de knop Alles annuleren om de cellen die in de wachtrij wachten, te annuleren. cancel-all-cells

Notebookverwijzing

Wordt niet ondersteund.

Variabeleverkenner

Wordt niet ondersteund.

Celstatusindicator

De uitvoeringsstatus van een cel wordt stap voor stap weergegeven onder de cel om u te helpen de huidige voortgang te bekijken. Zodra de uitvoering van de cel is voltooid, wordt er een uitvoeringssamenvatting met de totale duur en eindtijd weergegeven en bewaard voor toekomstig gebruik.

celstatus

Voortgangsindicator van Spark

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

spark-progress-indicator

Configuratie van Spark-sessie

U kunt de time-outduur, het aantal en de grootte van uitvoerders opgeven die aan de huidige Spark-sessie moeten worden opgegeven in Sessie configureren. Start de Spark-sessie opnieuw op om de configuratiewijzigingen door te voeren. Alle notebookvariabelen in de cache worden gew cleared.

sessiebeheer

Magic-opdracht voor Spark-sessie config

U kunt ook spark-sessie-instellingen opgeven via een magic-opdracht %%configureer. De Spark-sessie moet opnieuw worden gestart om het instellingeneffect te bereiken. U wordt aangeraden de %%configure aan het begin van uw notebook uit te voeren. Hier is een voorbeeld, raadpleeg voor https://github.com/cloudera/livy#request-body een volledige lijst met geldige parameters

%%configure -f
{
    to config the session.
    "driverMemory":"2g",
    "driverCores":3,
    "executorMemory":"2g",
    "executorCores":2,
    "jars":["myjar1.jar","myjar.jar"],
    "conf":{
        "spark.driver.maxResultSize":"10g"
    }
}

Notitie

Magic-opdracht voor spark-sessie config wordt niet ondersteund in Synapse-pijplijn.

Gegevens naar een notebook brengen

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

Een CSV lezen uit Azure Data Lake Store Gen2 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 lezen uit Azure Blob Storage 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 Data Explorer met de rechtermuisknop op een bestand en selecteer Nieuw notebook om een nieuw notebook te zien met automatisch gegenereerde gegevensextractor.

data-to-cell

Notebooks opslaan

U kunt één notebook of alle notebooks opslaan in uw werkruimte.

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

    publish-notebook

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

    publish-all

In de notebookeigenschappen kunt u configureren of de celuitvoer moet worden op te nemen bij het opslaan.

notebook-properties

Magic-opdrachten

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

Notitie

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

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 een nieuwe pijplijn te maken.

Notebook toevoegen aan pijplijn

Een parameterscel aanwijzen

Als u een parameter wilt instellen voor uw notebook, selecteert u het beletselteken (...) voor toegang tot het menu andere celacties aan de rechterkant. Selecteer vervolgens Parametercel in-/uitschakelen om de cel aan te wijzen als de parametercel.

toggle-parameter

Azure Data Factory zoekt naar de parameterscel en behandelt deze cel als standaardwaarden voor de parameters die tijdens de uitvoering worden doorgegeven. De uitvoeringsen engine voegt een nieuwe cel toe onder de parameterscel met invoerparameters om de standaardwaarden te overschrijven. Wanneer er geen parameterscel wordt aangewezen, wordt de geïnjecteerde cel bovenaan het notebook ingevoegd.

Parameters uit een pijplijn toewijzen

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

Een parameter toewijzen

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

Sneltoetsen

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

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

    opdrachtmodus

  2. De bewerkingsmodus wordt aangegeven door een tekstcursor waarin u wordt gevraagd om in het editorgebied te typen. Wanneer een cel in de bewerkingsmodus is, kunt u in de cel typen. Voer de bewerkingsmodus in Enter door op of met de muis te drukken om te selecteren in het editorgebied van een cel.

    bewerkingsmodus

Sneltoetsen onder de opdrachtmodus

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

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
Selecteer de bovenstaande cel Omhoog
Selecteer de onderstaande cel Buiten gebruik
Cel hierboven invoegen A
Voeg de onderstaande cel in B
Geselecteerde cellen hierboven uitbreiden Shift + omhoog
Geselecteerde cellen hieronder uitbreiden Shift + down
Cel omhoog verplaatsen Ctrl +Alt+·
Cel omlaag verplaatsen Ctrl +Alt+↓
Geselecteerde cellen verwijderen D, D
Overschakelen naar de bewerkingsmodus Enter

Sneltoetsen in de bewerkingsmodus

Met behulp van de volgende sneltoetsen 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
Opmerkingen/opmerkingen bij de opmerkingen Ctrl + /
Woord vóór verwijderen Ctrl + Backspace
Woord verwijderen na Ctrl + Verwijderen
Ga naar het begin van de cel Ctrl + Start
Naar het cel-einde gaan Ctrl + End
Eén woord links gaan Ctrl + links
Ga één woord naar rechts Ctrl + Rechts
Alles selecteren Ctrl + A
Streepje Ctrl +]
Dedent Ctrl + [
Overschakelen naar de opdrachtmodus Esc

Volgende stappen