Synapse-notebooks maken, ontwikkelen en onderhouden
Artikel
Een notebook in Azure Synapse Analytics (een Synapse-notebook) is een webinterface waarmee u bestanden kunt maken die livecode, visualisaties en verhaaltekst bevatten. Notebooks zijn een goede plek om ideeën te valideren en snelle experimenten te gebruiken om inzichten uit uw gegevens te verkrijgen. 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.
Help gegevens veilig te houden met ingebouwde bedrijfsbeveiligingsfuncties.
Analyseer gegevens in onbewerkte indelingen (zoals CSV, TXT en JSON), verwerkte bestandsindelingen (zoals Parquet, Delta Lake en ORC) en SQL-gegevensbestanden in tabelvorm met Spark en SQL.
Wees productief met verbeterde ontwerpmogelijkheden en ingebouwde gegevensvisualisatie.
In dit artikel wordt beschreven hoe u notebooks gebruikt in Synapse Studio.
Een notebook maken
U kunt een nieuw notitieblok maken of een bestaand notitieblok importeren in een Synapse-werkruimte vanuit Objectverkenner. Selecteer het menu Ontwikkelen . Selecteer de + knop en selecteer Notitieblok of klik met de rechtermuisknop op Notitieblokken en selecteer vervolgens Nieuw notitieblok of Importeren. Synapse-notebooks herkennen standaard Jupyter Notebook IPYNB-bestanden.
Notebooks ontwikkelen
Notebooks bestaan uit cellen, die afzonderlijke code- of tekstblokken zijn die u onafhankelijk of als groep kunt uitvoeren.
In de volgende secties worden de bewerkingen beschreven voor het ontwikkelen van notebooks:
In de notebooks wordt automatisch een SparkSession exemplaar voor u gemaakt en opgeslagen in een variabele met de naam spark. Er is ook een variabele voor SparkContext aangeroepen sc. Gebruikers hebben rechtstreeks toegang tot deze variabelen, maar mogen de waarden van deze variabelen niet wijzigen.
Een cel toevoegen
Er zijn meerdere manieren om een nieuwe cel aan uw notitieblok toe te voegen:
Beweeg de muisaanwijzer over de ruimte tussen twee cellen en selecteer Code of Markdown.
Gebruik sneltoetsen in de opdrachtmodus. Selecteer de toets A om een cel in te voegen boven de huidige cel. Selecteer de B-toets om een cel in te voegen onder de huidige cel.
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 nieuw toegevoegde cellen in de vervolgkeuzelijst Taal op de bovenste opdrachtbalk.
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 schakelen tussen celtalen.
Magic-opdracht
Language
Beschrijving
%%pyspark
Python
Voer een Python-query uit op SparkContext.
%%spark
Scala
Voer een Scala-query uit op SparkContext.
%%sql
Spark SQL
Voer een Spark SQL-query uit op SparkContext.
%%csharp
.NET voor Spark C#
Voer een .NET voor Spark C#-query uit op SparkContext.
%%sparkr
R
Voer een R-query uit op SparkContext.
In de volgende afbeelding ziet u een voorbeeld van hoe u een PySpark-query kunt schrijven met behulp van de %%pyspark magic-opdracht of een Spark SQL-query met behulp van de %%sql magic-opdracht in een Spark-notebook (Scala). De primaire taal voor het notebook is ingesteld op PySpark.
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 kunt u verwijzen naar een tijdelijke tabel in verschillende talen. Hier volgt een voorbeeld van het lezen van een Scala DataFrame in PySpark en Spark SQL met behulp van een tijdelijke Spark-tabel als tijdelijke oplossing:
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" )
Voer in cel 2 een query uit op de gegevens met behulp van Spark SQL:
%%sql
SELECT * FROM mydataframetable
Gebruik in cel 3 de gegevens in PySpark:
%%pyspark
myNewPythonDataFrame = spark.sql("SELECT * FROM mydataframetable")
IntelliSense in IDE-stijl gebruiken
Synapse-notebooks zijn geïntegreerd met de Monaco-editor om in IDE-stijl IntelliSense naar de celeditor te brengen. De functies van syntaxismarkering, foutmarkering en automatische voltooiing van code helpen u bij het schrijven van code en het sneller identificeren van problemen.
De IntelliSense-functies zijn 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 de gebruikersfunctiecode
Slimme inspringing
Code vouwen
PySpark (Python)
Ja
Ja
Ja
Ja
Ja
Ja
Ja
Ja
Spark (Scala)
Ja
Ja
Ja
Ja
Ja
Ja
No
Ja
Spark SQL
Ja
Ja
Ja
Ja
Ja
No
Nee
Nr.
.NET voor Spark (C#)
Ja
Ja
Ja
Ja
Ja
Ja
Ja
Ja
Een actieve Spark-sessie is vereist om te profiteren van voltooiing van variabele code, voltooiing van systeemfunctiecode en voltooiing van de gebruikersfunctiecode voor .NET voor Spark (C#).
Codefragmenten gebruiken
Synapse-notebooks bieden codefragmenten waarmee u eenvoudiger veelgebruikte codepatronen kunt invoeren. Deze patronen omvatten het configureren van uw Spark-sessie, het lezen van gegevens als een Spark DataFrame en het tekenen van grafieken met behulp van Matplotlib.
Fragmenten worden weergegeven in sneltoetsen van intelliSense in IDE-stijl, gecombineerd met andere suggesties. De inhoud van de codefragmenten wordt uitgelijnd met de taal van de codecel. U kunt beschikbare fragmenten zien door fragmenten of trefwoorden in te voeren die worden weergegeven in de titel van het codefragment in de codeceleditor. Als u bijvoorbeeld lezen invoert, ziet u de lijst met fragmenten om gegevens uit verschillende gegevensbronnen te lezen.
Tekstcellen opmaken met werkbalkknoppen
U kunt de opmaakknoppen op de werkbalk van de tekstcel gebruiken om algemene Markdown-acties uit te voeren. Deze acties omvatten het vet maken van tekst, het cursief maken van tekst, het maken van alinea's en koppen via een vervolgkeuzelijst, het invoegen van code, het invoegen van een niet-geordende lijst, het invoegen van een geordende lijst, het invoegen van een hyperlink en het invoegen van een afbeelding vanuit een URL.
Een celbewerking ongedaan maken of opnieuw uitvoeren
Als u de meest recente celbewerkingen wilt intrekken, selecteert u de knop Ongedaan maken of Opnieuw , of selecteert u de Z-toets of Shift+Z. U kunt nu maximaal 10 historische celbewerkingen ongedaan maken of opnieuw uitvoeren.
Ondersteunde celbewerkingen zijn onder andere:
Een cel invoegen of verwijderen. U kunt verwijderingsbewerkingen intrekken door Ongedaan maken te selecteren. Met deze actie blijft de tekstinhoud samen met de cel behouden.
Cellen opnieuw ordenen.
Schakel een parametercel in of uit.
Converteren tussen een codecel en een Markdown-cel.
Notitie
U kunt tekstbewerkingen of opmerkingenbewerkingen in een cel niet ongedaan maken.
Opmerking toevoegen aan een codecel
Selecteer de knop Opmerkingen op de werkbalk van het notitieblok om het opmerkingenvenster te openen.
Selecteer code in de codecel, selecteer Nieuw in het opmerkingenvenster, voeg opmerkingen toe en selecteer vervolgens de knop Opmerking posten.
Indien nodig kunt u bewerkingsactie Opmerking bewerken, Thread oplossen en Thread verwijderen uitvoeren door het beletselteken (...) naast uw opmerking te selecteren.
Een cel verplaatsen
Als u een cel wilt verplaatsen, selecteert u de linkerkant van de cel en sleept u de cel naar de gewenste positie.
Een cel kopiëren
Als u een cel wilt kopiëren, maakt u eerst een nieuwe cel en selecteert u vervolgens alle tekst in de oorspronkelijke cel, kopieert u de tekst en plakt u de tekst in de nieuwe cel. Wanneer de cel zich in de bewerkingsmodus bevindt, zijn traditionele sneltoetsen om alle tekst te selecteren beperkt tot de cel.
Tip
Synapse-notebooks bieden ook fragmenten van veelgebruikte codepatronen.
Een cel verwijderen
Als u een cel wilt verwijderen, selecteert u de knop Verwijderen rechts van de cel.
U kunt ook sneltoetsen gebruiken in de opdrachtmodus. Selecteer Shift+D om de huidige cel te verwijderen.
Celinvoer samenvouwen
Als u de invoer van de huidige cel wilt samenvouwen, selecteert u het weglatingsteken Meer opdrachten (...) op de celwerkbalk en selecteert u Invoer verbergen. Als u de invoer wilt uitvouwen, selecteert u Invoer weergeven terwijl de cel is samengevouwen.
Celuitvoer samenvouwen
Als u de uitvoer van de huidige cel wilt samenvouwen, selecteert u het weglatingsteken meer opdrachten (...) op de celwerkbalk en selecteert u Uitvoer verbergen. Als u de uitvoer wilt uitbreiden, selecteert u Uitvoer weergeven terwijl de uitvoer van de cel verborgen is.
Een notitieblokoverzicht gebruiken
Het overzicht (inhoudsopgave) bevat de eerste Markdown-koptekst van een Markdown-cel in een zijbalkvenster voor snelle navigatie. De zijbalk van het kader kan worden aangepast en samengevouwen om het scherm op de best mogelijke manier aan te passen. Als u de zijbalk wilt openen of verbergen, selecteert u de knop Overzicht op de opdrachtbalk van het notitieblok.
Een notebook uitvoeren
U kunt de codecellen in uw notebook afzonderlijk of allemaal tegelijk uitvoeren. De status en voortgang van elke cel worden weergegeven in het notitieblok.
Notitie
Als u een notebook verwijdert, worden taken die momenteel worden uitgevoerd, niet automatisch geannuleerd. Als u een taak wilt annuleren, gaat u naar de Monitor-hub en annuleert u deze handmatig.
Een cel uitvoeren
Er zijn meerdere manieren om de code in een cel uit te voeren:
Beweeg de muisaanwijzer over de cel die u wilt uitvoeren en selecteer vervolgens de knop Cel uitvoeren of druk op Ctrl+Enter.
Gebruik sneltoetsen in de opdrachtmodus. Selecteer Shift+Enter om de huidige cel uit te voeren en selecteer de cel eronder. Selecteer Alt+Enter om de huidige cel uit te voeren en eronder een nieuwe cel in te voegen.
Alle cellen uitvoeren
Als u alle cellen in het huidige notebook op volgorde wilt uitvoeren, selecteert u de knop Alles uitvoeren.
Alle cellen boven of onder uitvoeren
Als u alle cellen boven de huidige cel in volgorde wilt uitvoeren, vouwt u de vervolgkeuzelijst voor de knop Alles uitvoeren uit en selecteert u cellen uitvoeren erboven. Selecteer Cellen uitvoeren hieronder om alle cellen onder de huidige cellen in volgorde uit te voeren.
Alle actieve cellen annuleren
Als u de actieve cellen of de cellen in de wachtrij wilt annuleren, selecteert u de knop Alles annuleren.
Verwijzen naar een notitieblok
Als u wilt verwijzen naar een ander notitieblok binnen de context van het huidige notitieblok, gebruikt u de %run <notebook path> magic-opdracht. Alle variabelen die in het referentienotitieblok zijn gedefinieerd, zijn beschikbaar in het huidige notebook.
De notebook-verwijzing werkt zowel in de interactieve modus als in pijplijnen.
De %run magic-opdracht heeft deze beperkingen:
De opdracht ondersteunt geneste aanroepen, maar niet recursieve aanroepen.
De opdracht ondersteunt het doorgeven van een absolute pad- of notebooknaam alleen als parameter. Het biedt geen ondersteuning voor relatieve paden.
De opdracht ondersteunt momenteel slechts vier parameterwaardetypen: int, float, boolen string. Het biedt geen ondersteuning voor variabele vervangingsbewerkingen.
De notitieblokken waarnaar wordt verwezen, moeten worden gepubliceerd. U moet de notitieblokken publiceren om ernaar te verwijzen, tenzij u de optie selecteert om een niet-gepubliceerde notitieblokreferentie in te schakelen. Synapse Studio herkent de niet-gepubliceerde notebooks niet vanuit de Git-opslagplaats.
Notebooks waarnaar wordt verwezen, bieden geen ondersteuning voor diepten van instructies die groter zijn dan vijf.
De variabeleverkenner gebruiken
Een Synapse-notebook biedt een ingebouwde variabeleverkenner in de vorm van een tabel met variabelen in de huidige Spark-sessie voor PySpark-cellen (Python). De tabel bevat kolommen voor variabelenaam, type, lengte en waarde. Meer variabelen worden automatisch weergegeven wanneer ze worden gedefinieerd in de codecellen. Als u elke kolomkop selecteert, worden de variabelen in de tabel gesorteerd.
Als u de variabeleverkenner wilt openen of verbergen, selecteert u de knop Variabelen op de opdrachtbalk van het notitieblok.
Notitie
De Variable Explorer ondersteunt alleen Python.
De celstatusindicator gebruiken
Er wordt een stapsgewijze status van een celuitvoering weergegeven onder de cel, zodat u de huidige voortgang kunt zien. Nadat de uitvoering van de cel is voltooid, wordt een samenvatting met de totale duur en eindtijd weergegeven en blijft daar voor toekomstig gebruik.
De Spark-voortgangsindicator gebruiken
Een Synapse-notebook is uitsluitend gebaseerd op Spark. Codecellen worden op afstand uitgevoerd op de serverloze Apache Spark-pool. Een voortgangsindicator voor Spark-taken met een realtime voortgangsbalk helpt u inzicht te hebben in de uitvoeringsstatus van de taak.
Het aantal taken voor elke 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 op de naam van de taak (of fase) te selecteren.
Een Spark-sessie configureren
In het deelvenster Sessie configureren , dat u kunt vinden door het tandwielpictogram boven aan het notebook te selecteren, kunt u de time-outduur, het aantal uitvoerders en de grootte van uitvoerders opgeven die u aan de huidige Spark-sessie wilt geven. Start de Spark-sessie opnieuw om configuratiewijzigingen van kracht te laten worden. Alle notebookvariabelen in de cache worden gewist.
U kunt ook een configuratie maken op basis van de Apache Spark-configuratie of een bestaande configuratie selecteren. Raadpleeg de Apache Spark-configuratie beheren voor meer informatie.
Magic-opdracht voor het configureren van een Spark-sessie
U kunt ook spark-sessie-instellingen opgeven via de magic-opdracht %%configure. Start de Spark-sessie opnieuw om de instellingen van kracht te maken.
U wordt aangeraden aan het begin van uw notebook uit te voeren %%configure . Hier volgt een voorbeeld. Raadpleeg de Livy-informatie op GitHub voor de volledige lijst met geldige parameters.
%%configure
{
//You can get a list of valid parameters to configure 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 a standard Spark property. To find more available properties, go to https://spark.apache.org/docs/latest/configuration.html#application-properties.
"spark.driver.maxResultSize":"10g",
//Example of a customized property. You can specify the count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
"livy.rsc.sql.num-rows":"3000"
}
}
Hier volgen enkele overwegingen voor de %%configure magic-opdracht:
U wordt aangeraden dezelfde waarde voor driverMemory en executorMemory in %%configurete gebruiken. We raden u ook aan driverCoresexecutorCores om dezelfde waarde te hebben.
U kunt in Synapse-pijplijnen gebruiken %%configure , maar als u deze niet instelt in de eerste codecel, mislukt de pijplijnuitvoering omdat de sessie niet opnieuw kan worden gestart.
De %%configure opdracht die in mssparkutils.notebook.run wordt gebruikt, wordt genegeerd, maar de opdracht die in %run <notebook> deze opdracht wordt gebruikt, wordt nog steeds uitgevoerd.
U moet de standaardconfiguratie-eigenschappen van Spark in de "conf" hoofdtekst gebruiken. We bieden geen ondersteuning voor verwijzingen op het eerste niveau voor de Spark-configuratie-eigenschappen.
Sommige speciale Spark-eigenschappen worden niet doorgevoerd in "conf" de hoofdtekst, waaronder "spark.driver.cores", "spark.executor.cores", "spark.driver.memory", en "spark.executor.instances""spark.executor.memory".
Configuratie van geparameteriseerde sessie vanuit een pijplijn
U kunt de configuratie van een geparameteriseerde sessie gebruiken om waarden in de %%configure magic-opdracht te vervangen door parameters voor pijplijnuitvoering (notebookactiviteit). Wanneer u een %%configure codecel voorbereidt, kunt u standaardwaarden overschrijven door een object als volgt te gebruiken:
Het notebook gebruikt de standaardwaarde als u het notebook rechtstreeks in de interactieve modus uitvoert of als de activiteit pijplijnnotitieblok geen parameter bevat die overeenkomt "activityParameterName".
Tijdens de pijplijnuitvoeringsmodus kunt u het tabblad Instellingen gebruiken om instellingen voor een pijplijnnotitieblokactiviteit te configureren.
Als u de sessieconfiguratie wilt wijzigen, moet de naam van de activiteitsparameter pijplijnnotitieblok hetzelfde zijn als activityParameterName in het notebook. In dit voorbeeld wordt tijdens een pijplijnuitvoering 8 vervangen driverCores en %%configure4000 vervangenlivy.rsc.sql.num-rows.
Als een pijplijnuitvoering mislukt nadat u de %%configure magic-opdracht hebt gebruikt, kunt u meer foutinformatie krijgen door de %%configure magic-cel uit te voeren in de interactieve modus van het notebook.
Gegevens naar een notebook brengen
U kunt gegevens laden uit Azure Data Lake Storage Gen 2-, Azure Blob Storage- en SQL-pools, zoals wordt weergegeven in de volgende codevoorbeelden.
Een CSV-bestand uit Azure Data Lake Storage Gen2 lezen als een Spark DataFrame
Een CSV-bestand uit 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 Azure Blob Storage 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 een automatisch gegenereerde gegevensextractor.
IPython-widgets gebruiken
Widgets zijn gebeurtenisvolle Python-objecten die een weergave in de browser hebben, vaak als een besturingselement zoals een schuifregelaar of tekstvak. IPython-widgets werken alleen in Python-omgevingen. Ze worden momenteel niet ondersteund in andere talen (bijvoorbeeld Scala, SQL of C#).
Stappen voor het gebruik van IPython-widgets
Importeer de ipywidgets module om het Jupyter Widgets-framework te gebruiken:
import ipywidgets as widgets
Gebruik de functie op het hoogste niveau display om een widget weer te geven of laat een expressie van het widget type achter op de laatste regel van de codecel:
slider = widgets.IntSlider()
display(slider)
slider = widgets.IntSlider()
slider
Voer de cel uit. De widget wordt weergegeven in het uitvoergebied.
U kunt meerdere display() aanroepen gebruiken om hetzelfde widgetexemplaren meerdere keren weer te geven, maar ze blijven gesynchroniseerd met elkaar:
De volgende tabel bevat widgets die momenteel niet worden ondersteund, samen met tijdelijke oplossingen:
Functionaliteit
Tijdelijke oplossing
Output Widget
U kunt in plaats daarvan de print() functie gebruiken om tekst naar stdoutte schrijven.
widgets.jslink()
U kunt de widgets.link() functie gebruiken om twee vergelijkbare widgets te koppelen.
FileUpload Widget
Geen beschikbaar.
De globale display functie die Azure Synapse Analytics biedt, biedt geen ondersteuning voor het weergeven van meerdere widgets in één aanroep (dat wil display(a, b)wel). Dit gedrag verschilt van de functie IPython display .
Als u een notitieblok sluit dat een IPython-widget bevat, kunt u de widget pas weergeven of gebruiken als u de bijbehorende cel opnieuw uitvoert.
Notebooks opslaan
U kunt één notitieblok of alle notitieblokken in uw werkruimte opslaan:
Als u wijzigingen wilt opslaan die u in één notitieblok hebt aangebracht, selecteert u de knop Publiceren op de opdrachtbalk van het notitieblok.
Als u alle notitieblokken in uw werkruimte wilt opslaan, selecteert u de knop Alles publiceren op de opdrachtbalk van de werkruimte.
In het deelvenster Eigenschappen van het notitieblok kunt u configureren of de celuitvoer moet worden opgenomen bij het opslaan.
Magic-opdrachten gebruiken
U kunt vertrouwde Jupyter-magic-opdrachten gebruiken in Synapse-notebooks. Bekijk de volgende lijsten met momenteel beschikbare magic-opdrachten. Vertel ons uw use cases op GitHub , zodat we meer magic-opdrachten kunnen blijven maken om aan uw behoeften te voldoen.
Notitie
Alleen de volgende magic-opdrachten worden ondersteund in Synapse-pijplijnen: %%pyspark, %%spark, %%csharp, . %%sql
Het is handig om te verwijzen naar een niet-gepubliceerd notitieblok als u lokaal fouten wilt opsporen. Wanneer u deze functie inschakelt, haalt een notebook de huidige inhoud op in de webcache. Als u een cel uitvoert die een verwijzingsnotitieblokinstructie bevat, verwijst u naar de presentatienotitieblokken in de huidige notebookbrowser in plaats van naar een opgeslagen versie in een cluster. Andere notitieblokken kunnen verwijzen naar de wijzigingen in uw notebook-editor zonder dat u de wijzigingen hoeft te publiceren (livemodus) of door te voeren (Git-modus). Door deze aanpak te gebruiken, kunt u de vervuiling van gemeenschappelijke bibliotheken voorkomen tijdens het ontwikkelen of opsporen van fouten.
U kunt verwijzen naar een niet-gepubliceerd notitieblok inschakelen door het juiste selectievakje in het deelvenster Eigenschappen in te schakelen.
In de volgende tabel worden gevallen vergeleken. Hoewel %run en mssparkutils.notebook.run hier hetzelfde gedrag hebben, wordt de tabel als voorbeeld gebruikt %run .
Case
Uitschakelen
Inschakelen
Livemodus
Nb1 (gepubliceerd) %run Nb1
Gepubliceerde versie van Nb1 uitvoeren
Gepubliceerde versie van Nb1 uitvoeren
Nb1 (nieuw) %run Nb1
Error
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
Error
Nieuwe Nb1 uitvoeren
Nb1 (niet gepubliceerd, vastgelegd) %run Nb1
Error
Vastgelegde Nb1 uitvoeren
Nb1 (eerder gepubliceerd, vastgelegd) %run Nb1
Gepubliceerde versie van Nb1 uitvoeren
Vastgelegde versie van Nb1 uitvoeren
Nb1 (eerder gepubliceerd, nieuw in huidige vertakking) %run Nb1
Nb1 (eerder gepubliceerd en doorgevoerd, bewerkt) %run Nb1
Gepubliceerde versie van Nb1 uitvoeren
Bewerkte versie van Nb1 uitvoeren
Samengevat:
Als u verwijst naar een niet-gepubliceerd notitieblok uitschakelt, voert u altijd de gepubliceerde versie uit.
Als u verwijst naar een niet-gepubliceerd notitieblok inschakelt, gebruikt de verwijzingsuitvoering altijd de huidige versie van het notebook die wordt weergegeven op de UX van het notebook.
Actieve sessies beheren
U kunt uw notebooksessies opnieuw gebruiken zonder dat u nieuwe sessies hoeft te starten. In Synapse-notebooks kunt u uw actieve sessies in één lijst beheren. Als u de lijst wilt openen, selecteert u het beletselteken (...) en selecteert u vervolgens Sessies beheren.
Het deelvenster Actieve sessies bevat alle sessies in de huidige werkruimte die u vanuit een notitieblok hebt gestart. De lijst bevat de sessiegegevens en de bijbehorende notebooks. De ontkoppeling met notebook, De sessie stoppen en Weergeven in bewakingsacties zijn hier beschikbaar. U kunt ook uw geselecteerde notitieblok verbinden met een actieve sessie die is gestart vanuit een ander notitieblok. De sessie wordt vervolgens losgekoppeld van het vorige notebook (als deze niet inactief is) en is gekoppeld aan het huidige notitieblok.
Python-logboeken gebruiken in een notebook
U kunt Python-logboeken vinden en verschillende logboekniveaus en -indelingen instellen met behulp van de volgende 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 the 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 uses 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 uses 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")
De geschiedenis van invoeropdrachten weergeven
Synapse-notebooks ondersteunen de magic-opdracht %history om de invoeropdrachtgeschiedenis voor de huidige sessie af te drukken. De %history magic-opdracht is vergelijkbaar met de standaard Jupyter IPython-opdracht en werkt voor meerdere taalcontexten in een notebook.
%history [-n] [range [range ...]]
In de voorgaande code -n is het afdrukuitvoeringsnummer. De range waarde kan het volgende zijn:
N: Code van de Nth uitgevoerde cel afdrukken.
M-N: Code afdrukken van de Mth cel naar de Nth uitgevoerde cel.
Als u bijvoorbeeld invoergeschiedenis wilt afdrukken van de eerste naar de tweede uitgevoerde cel, gebruikt u %history -n 1-2.
Een notebook integreren
Een notebook toevoegen aan een pijplijn
Als u een notebook wilt toevoegen aan een bestaande pijplijn of een nieuwe pijplijn wilt maken, selecteert u de knop Toevoegen aan pijplijn in de rechterbovenhoek.
Een parametercel aanwijzen
Als u uw notitieblok wilt parameteriseren, selecteert u het beletselteken (...) voor toegang tot meer opdrachten op de celwerkbalk. Selecteer vervolgens De parametercel in-/uitschakelen om de cel aan te wijzen als parametercel.
Azure Data Factory zoekt naar de parametercel en behandelt deze cel als de standaardwaarde voor de parameters die tijdens de uitvoering zijn doorgegeven. De uitvoeringsengine voegt een nieuwe cel toe onder de parametercel met invoerparameters om de standaardwaarden te overschrijven.
Parameters uit een pijplijn toewijzen
Nadat u een notebook met parameters hebt gemaakt, kunt u dit uitvoeren vanuit een pijplijn met behulp van een Synapse-notebookactiviteit. Nadat u de activiteit aan uw pijplijncanvas hebt toegevoegd, kunt u de parameterwaarden instellen in de sectie Basisparameters van het tabblad Instellingen .
Wanneer u parameterwaarden toewijst, kunt u de taal van de pijplijnexpressie of systeemvariabelen gebruiken.
Sneltoetsen gebruiken
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 codecel:
Opdrachtmodus: 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 de Esc-toets te selecteren of door de muis te gebruiken om buiten het editorgebied van een cel te selecteren.
Bewerkingsmodus: wanneer een cel zich in de bewerkingsmodus bevindt, wordt u door een tekstcursor gevraagd om in de cel te typen. Voer de bewerkingsmodus in door de Enter-toets te selecteren of door de muis te gebruiken om het editorgebied van een cel te selecteren.
Manage data ingestion and preparation, model training and deployment, and machine learning solution monitoring with Python, Azure Machine Learning and MLflow.