Delen via


Microsoft Fabric-notebooks ontwikkelen, uitvoeren en beheren

Een Microsoft Fabric-notebook is een primair code-item voor het ontwikkelen van Apache Spark-taken en machine learning-experimenten. Het is een interactief weboppervlak dat wordt gebruikt door gegevenswetenschappers en data engineers om code te schrijven die profiteert van rijke visualisaties en Markdown-tekst. In dit artikel wordt uitgelegd hoe u notebooks ontwikkelt met codecelbewerkingen en deze uitvoert.

Notebooks ontwikkelen

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

Wij bieden uitgebreide mogelijkheden 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.

  2. Gebruik sneltoetsen in 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

Fabric-notebooks ondersteunen momenteel vier Apache Spark-talen:

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

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

Meerdere talen gebruiken

U kunt meerdere talen in een notebook gebruiken door de taal magic-opdracht aan het begin van een cel op te geven. U kunt ook de celtaal wijzigen in de taalkiezer. De volgende tabel bevat de magische opdrachten voor het schakelen tussen cel talen.

Schermopname van een voorbeeld van de magische taalinstructie die aan het begin van een cel is ingevoerd.

Magische opdracht Taal Beschrijving
%%pyspark Python Voer een Python-query uit op Apache Spark-context.
%%spark Scala Voer een Scala-query uit op Apache Spark-context.
%%sql SparkSQL Voer een SparkSQL-query uit op Apache Spark-context.
%%html HTML Voer n HTML-query uit op Apache Spark-context .
%%sparkr R Voer een R-query uit op Apache Spark-context.

IDE-stijl IntelliSense

Fabric-notebooks zijn geïntegreerd met de Monaco-editor om IntelliSense in IDE-stijl naar de celeditor te brengen. Met syntaxismarkeringen, foutmarkeringen en automatische code-voltooiingen kunt u snel code schrijven en problemen identificeren.

De IntelliSense-functies zijn op verschillende volwassenheidsniveaus voor verschillende talen. In de volgende tabel ziet u wat Fabric ondersteunt:

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
Python Ja Ja Ja Ja Ja Ja Ja Ja
Spark (Scala) Ja Ja Ja Ja Ja Ja Ja Ja
SparkSQL Ja Ja Ja Ja Ja Nee Ja Ja
SparkR Ja Ja Ja Ja Ja Ja Ja Ja
T-SQL Ja Ja Ja Nee Ja Ja Ja Ja

Notitie

U moet een actieve Apache Spark-sessie hebben om intelliSense-code te kunnen voltooien.

Python-ontwikkeling verbeteren met Pylance

Notitie

Momenteel is de functie beschikbaar als preview-versie.

Pylance, een krachtige en functierijke taalserver, is nu beschikbaar in Fabric-notebook. Pylance maakt python-ontwikkeling eenvoudiger met slimme voltooiingen, betere foutdetectie en verbeterde code-inzichten. Belangrijke verbeteringen zijn slimmere automatisch aanvullen, verbeterde lambda-ondersteuning, parametersuggesties, verbeterde informatie over aanwijzen, betere docstring rendering en foutmarkeringen. Met Pylance wordt het schrijven van Python- en PySpark-code sneller, nauwkeuriger en efficiënter.

Codefragmenten

Fabric-notebooks bieden codefragmenten waarmee u eenvoudig veelgebruikte codepatronen kunt schrijven, zoals:

  • Gegevens lezen als een Apache Spark DataFrame
  • Grafieken tekenen met Matplotlib

Codefragmenten worden in sneltoetsen van IntelliSense in de stijl van een IDE weergegeven, gecombineerd met andere suggesties. De inhoud van het codefragment wordt uitgelijnd met de taal van de codecel. U kunt beschikbare fragmenten zien door fragment te typen. U kunt ook elk trefwoord typen om een lijst met relevante fragmenten weer te geven. Als u bijvoorbeeld lezen typt, ziet u de lijst met fragmenten om gegevens uit verschillende gegevensbronnen te lezen.

GIF-animatie van codefragmenten.

Slepen en neerzetten om fragmenten in te voegen

Gebruik drag-and-drop om eenvoudig gegevens uit Lakehouse Explorer te lezen. Hier worden meerdere bestandstypen ondersteund; u kunt werken met tekstbestanden, tabellen, afbeeldingen, enzovoort. U kunt naar een bestaande cel of naar een nieuwe cel gaan. Het notebook genereert het codefragment zodat je een voorbeeld van de gegevens kunt bekijken.

GIF-animatie van het slepen en neerzetten om fragmenten in te voegen.

Slepen en neerzetten om afbeeldingen in te voegen

Gebruik slepen en neerzetten om eenvoudig afbeeldingen vanuit uw browser of lokale computer in te voegen in een Markdown-cel.

GIF-animatie van slepen en neerzetten om afbeeldingen toe te voegen.

Tekstcel opmaken met werkbalkknoppen

Als u algemene Markdown-acties wilt voltooien, gebruikt u de opmaakknoppen op de werkbalk van de tekstcel.

Schermopname van de werkbalk tekstopmaak.

Celbewerkingen ongedaan maken of opnieuw uitvoeren

Selecteer Ongedaan maken of Opnieuw uitvoeren of druk op Z of Shift+Z om de meest recente celbewerkingen in te trekken. U kunt maximaal 10 van de meest recente historische celbewerkingen ongedaan maken of opnieuw uitvoeren.

Schermopname van de menuopties ongedaan maken en opnieuw uitvoeren.

Ondersteunde ongedaan maken celbewerkingen:

  • Cel invoegen of verwijderen. U kunt de verwijderde bewerkingen intrekken door Ongedaan maken te selecteren (de tekstinhoud wordt samen met de cel bewaard).
  • Cel herschikken.
  • Parameter aan/uit schakelen.
  • Converteren tussen codecel en Markdown-cel.

Notitie

Bewerkingen voor tekst in cellen en bewerkingen voor opmerkingen in codecellen kunnen niet ongedaan worden gemaakt. U kunt maximaal 10 van de meest recente historische celbewerkingen ongedaan maken of opnieuw uitvoeren.

Een cel verplaatsen

U kunt slepen van het lege gedeelte van een cel en het neerzetten op de gewenste positie.

U kunt de geselecteerde cel ook verplaatsen met omhoog en omlaag op het lint.

Schermopname van de opties voor het verplaatsen van een cel.

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.

Vouw een celinvoer in

Selecteer de ellipsen Meer opdrachten (...) op de werkbalk van de cel en verberg invoer om de invoer van de huidige cel te verbergen. Als u de cel opnieuw wilt uitvouwen, selecteert u Invoer weergeven wanneer de cel is samengevouwen.

Samenvouwen van een celuitvoer

Selecteer de meer opdrachten beletselteken (...) op de werkbalk van de cel en verberg de uitvoer om de uitvoer van de huidige cel in te klappen. Als u de uitvoer opnieuw wilt uitvouwen, selecteert u Uitvoer weergeven wanneer de celuitvoer is samengevouwen.

Veiligheid van celuitvoer

Met OneLake-rollen voor gegevenstoegang (preview) kunnen gebruikers toegang configureren tot uitsluitend specifieke mappen in een lakehouse tijdens notebookquery's. Gebruikers zonder toegang tot een map of tabel zien een niet-geautoriseerde fout tijdens het uitvoeren van de query.

Belangrijk

Beveiliging is alleen van toepassing tijdens het uitvoeren van query's en notebookcellen met queryresultaten kunnen worden bekeken door gebruikers die niet zijn gemachtigd om query's rechtstreeks uit te voeren op de gegevens.

Een cel vergrendelen of blokkeren

Met de vergrendelings- en blokkeringsbewerkingen kunt u cellen alleen-lezen of stoppen dat codecellen afzonderlijk worden uitgevoerd.

GIF-animatie van vergrendelen of blokkeren van een cel.

Cellen samenvoegen en splitsen

U kunt Samenvoegen met vorige cel of Samenvoegen met volgende cel gebruiken om gerelateerde cellen gemakkelijk samen te voegen.

Als u gesplitste cel selecteert, kunt u irrelevante instructies splitsen in meerdere cellen. De bewerking splitst de code op basis van de lijnpositie van de cursor.

Schermopname van het invoeren van gesplitste cellen voor samenvoegen.

Inhoud van notitieblok

Als u Overzichten of Inhoudsopgave selecteert, ziet u de eerste Markdown-koptekst van een Markdown-cel in een zijbalkvenster voor snelle navigatie. De zijbalk Overzichten is aanpasbaar en inklapbaar om optimaal op het scherm te passen. Selecteer de knop Inhoud op de opdrachtbalk van het notitieblok om de zijbalk te openen of te verbergen.

Schermopname die laat zien waar u de optie Inhoud kunt selecteren.

Markdown samenvouwen

Met de optie markdown folding kunt u cellen verbergen onder een Markdown-cel die een kop bevat. De Markdown-cel en de verborgen cellen worden hetzelfde behandeld als een reeks aaneengesloten multi-geselecteerde cellen bij het uitvoeren van celbewerkingen.

GIF-animatie van het samenvouwen van Markdown.

Zoeken en vervangen

Met de optie zoeken en vervangen kunt u de trefwoorden of uitdrukkingen in uw notitieblokinhoud matchen en lokaliseren. U kunt de doelstring ook eenvoudig vervangen door een nieuwe string.

Schermopname van het deelvenster Zoeken en vervangen.

Inline code-aanvulling van Copilot (Preview)

Copilot inline-codevoltooiing is een ai-functie die u helpt python-code sneller en efficiënter te schrijven in Fabric Notebooks. Deze functie biedt intelligente, contextbewuste codesuggesties terwijl u code typt. Het vermindert terugkerende taken, minimaliseert syntaxisfouten en versnelt de ontwikkeling door naadloos te integreren in uw notebookwerkstroom.

Belangrijkste voordelen

  • Ai-gestuurde voltooiingen: Hiermee worden suggesties gegenereerd op basis van de context van uw notebook met behulp van een model dat is getraind op miljoenen regels code.
  • Verhoogt de productiviteit: Helpt bij het schrijven van complexe functies, vermindert terugkerende codering en versnelt het verkennen van onbekende bibliotheken.
  • Vermindert fouten: Minimaliseert typfouten en syntaxisfouten met intelligente, contextbewuste voltooiingen.
  • Minimale installatie: Ingebouwd in Fabric-notebooks, vereist geen installatie. U kunt het inschakelen en beginnen met coderen.

Hoe het werkt

Schakel inlinecodesuggesties in met behulp van de schakelaar onderaan uw notebook. Terwijl u typt, worden suggesties weergegeven in lichtgrijze tekst, drukt u op tab om te accepteren of te wijzigen. Suggesties zijn gebaseerd op eerdere notebook cellen.

Schermopname van het inschakelen van Copilot-codevoltooiingen.

Schermopname van automatische codesuggesties met Copilot-codevoltooiing.

Notitie

Het inschakelen van inlinecodevoltooiing van Copilot verbruikt extra capaciteitseenheden.

Huidige beperkingen

  • Copilot Inline Code Completion ondersteunt momenteel de Python-taal en gebruikt context van eerdere cellen en Lakehouse-schema's.
  • Suggesties houden rekening met gegevens uit Lakehouse-schema's.
  • Er wordt alleen een subset van schema-elementen gebruikt wanneer er veel tabellen of kolommen zijn.
  • Dynamisch gemaakte tabellen (via Spark) worden niet in realtime herkend.

Notebooks 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.

Voer een cel uit

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

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

  • Gebruik sneltoetsen in de opdrachtmodus. Druk op Shift+Enter om de huidige cel uit te voeren en selecteer de volgende cel. Druk op Alt+Enter om de huidige cel uit te voeren en een nieuwe cel in te voegen.

Voer alle cellen uit

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

Voer alle cellen hierboven of hieronder uit

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

Schermopname van de menuopties 'Alles uitvoeren'.

Alle actieve cellen annuleren

Selecteer Alles annuleren om de actieve cellen of cellen te annuleren die in de wachtrij wachten.

Sessie stoppen

Sessie stoppen annuleert de actieve en wachtende cellen en stopt de huidige sessie. U kunt een gloednieuwe sessie opnieuw starten door de optie voor uitvoeren opnieuw te selecteren.

Schermopname die laat zien waar u Alle uitvoeringen annuleren selecteert en een sessie stopt.

Referentieloop

Notebook uitvoeren als naslagreferentie.

Naast de notebookutils-verwijzingsuitvoering API, kunt u ook de %run <notebook name> magic-opdracht gebruiken om te verwijzen naar een ander notitieblok binnen de context van het huidige notitieblok. Alle variabelen die in het referentienotenboek zijn gedefinieerd, zijn beschikbaar in het huidige notenboek. De %run magic-opdracht ondersteunt geneste oproepen, maar biedt geen ondersteuning voor recursieve oproepen. U ontvangt een uitzondering als de diepte van de instructie groter is dan vijf.

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

Notebook werkt zowel in de interactieve modus als in de pijplijnmodus.

Notitie

  • De %run opdracht ondersteunt momenteel alleen referentienotebooks in dezelfde werkruimte met het huidige notebook.
  • De %run opdracht ondersteunt momenteel maximaal vier parameterwaardetypen: int, float, boolen string. Variabele vervangingsbewerking wordt niet ondersteund.
  • De %run opdracht ondersteunt geen geneste verwijzingen met een diepte die groter is dan vijf.

Referentie voer een script uit

Met de %run opdracht kunt u ook Python- of SQL-bestanden uitvoeren die zijn opgeslagen in de ingebouwde resources van het notebook, zodat u uw broncodebestanden in notebook gemakkelijk kunt uitvoeren.

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

Voor opties:

  • -b/--builtin: Deze optie geeft aan dat de opdracht het opgegeven scriptbestand vindt en uitvoert vanuit de ingebouwde bronnen van het notebook.
  • -c/--current: Met deze optie zorgt u ervoor dat het commando altijd de ingebouwde resources van het huidige notitieboek gebruikt, zelfs als naar het huidige notitieboek wordt verwezen door andere notitieboeken.

Voorbeelden:

  • Om script_file.py uit te voeren vanuit de ingebouwde resources: %run -b script_file.py

  • Voer script_file.sql uit vanuit de ingebouwde resources:%run -b script_file.sql

  • Script_file.py uitvoeren vanuit de ingebouwde resources met specifieke variabelen:%run -b script_file.py { "parameterInt": 1, "parameterFloat": 2.5, "parameterBool": true, "parameterString": "abc" }

Notitie

Als de opdracht geen -b/--builtin bevat, wordt geprobeerd een notebook-item in dezelfde werkruimte te vinden en uit te voeren in plaats van de ingebouwde resources.

Voorbeeld van ingebedde testcase:

  • Stel dat we twee notitieblokken hebben.
    • Notebook1: bevat script_file1.py in de ingebouwde resources
    • Notebook2: bevat script_file2.py in de ingebouwde hulpbronnen
  • Laten we Notebook1 gebruiken als hoofdnotitieblok met de inhoud: %run Notebook2.
  • In Notebook2 is de gebruiksinstructie:
    • Als u script_file1.py wilt uitvoeren in Notebook1(de root-notebook), zou de code zijn: %run -b script_file1.py
    • Als u script_file2.py wilt uitvoeren in Notebook2-(het huidige notebook), is de code: %run -b -c script_file2.py

Variabele verkenner

Fabric-notebooks bieden een ingebouwde variabelenverkenner waarmee de lijst met de naam van de variabelen, het type, de lengte en de waarde in de huidige Spark-sessie voor PySpark-cellen (Python) wordt weergegeven. Meer variabelen worden automatisch weergegeven wanneer ze worden gedefinieerd in de codecellen. Als u op elke kolomkop klikt, worden de variabelen in de tabel gesorteerd.

Als u de variabeleverkenner wilt openen of verbergen, selecteert u Variabelen in de lintweergave van het notitieblok.

Schermopname die laat zien waar variabelen moeten worden geopend.

Notitie

De Variable Explorer ondersteunt alleen Python.

Indicator voor celstatus

Onder de cel wordt een stapsgewijze uitvoeringsstatus van de cel weergegeven, zodat u de huidige voortgang kunt zien. Zodra de uitvoering van de cel is voltooid, wordt er een uitvoeringsoverzicht met de totale duur en eindtijd weergegeven en daar opgeslagen voor toekomstig gebruik.

Voorbeeld van een schermopname met details van de uitvoeringsstatus van een cel.

Sessiestatusindicator

Configuratie voor sessie-time-out

In de linkerbenedenhoek kunt u de sessiestatus selecteren voor meer informatie over de huidige sessie:

Schermopname van sessiegegevens.

In het pop-upvenster is er een optie om de time-out opnieuw in te stellen op x minuten of uren.

Schermopname van sessietime-out.

Kies hoelang u een ononderbroken sessie wilt en druk op Apply. De time-out van de sessie wordt opnieuw ingesteld met de nieuwe waarde en u kunt aan de slag!

U kunt ook een time-out instellen zoals beschreven in:

Aangemeld blijven: Als u tijdens de aanmelding het dialoogvenster Aangemeld blijven ziet, selecteert u Ja om de time-out voor de actieve sessie voor uw huidige sessie te deactiveren.

Belangrijk

Schakel het selectievakje Dit niet opnieuw weergeven niet in, omdat hierdoor uw aanmeldingsinstellingen permanent worden vergrendeld. Deze optie wordt mogelijk niet weergegeven als uw tenantbeheerder de instelling Aangemeld blijven (KMSI) heeft uitgeschakeld.

Een beleidswijziging aanvragen: Als u een langere sessieduur nodig hebt, vraagt u de tenantbeheerder om het time-outduurbeleid voor niet-actieve sessies uit te breiden. Ze kunnen dit doen door te navigeren naar Organisatie-instellingen Beveiliging & Privacy time-out voor inactieve sessie binnen het M365 Admin Center.

Notitie

Als u KMSI selecteert en/of de time-outduur van de niet-actieve sessie verlengt, wordt het risico vergroot dat een ontgrendelde machine wordt geopend.

Hoe beïnvloeden ABT en time-outs voor inactieve sessies langdurige uitvoeringen in Fabric Notebook?

Als uw tenant gebruikmaakt van time-out op basis van activiteit (ABT), kunnen langlopende interactieve taken in Fabric-notebooks worden beïnvloed door het time-outbeleid voor niet-actieve sessies van Microsoft 365. Deze beveiligingsfunctie is ontworpen om gebruikers af te melden op inactieve, niet-beheerde apparaten, zelfs als een notebooktaak nog steeds wordt uitgevoerd. Terwijl activiteiten in andere Microsoft 365-apps de sessie actief kunnen houden, worden niet-actieve apparaten standaard afgemeld.

Waarom worden gebruikers afgemeld, zelfs wanneer een notebooktaak nog steeds wordt uitgevoerd?

Time-out voor niet-actieve sessies geeft prioriteit aan beveiliging door sessies op inactieve apparaten te beëindigen om onbevoegde toegang te voorkomen. Zelfs wanneer een uitvoering van een notebook wordt uitgevoerd, wordt de sessie beëindigd als er geen activiteit op het apparaat wordt weergegeven. Het openhouden van sessies op niet-actieve apparaten zou de beveiliging in gevaar hebben. Daarom wordt het huidige gedrag afgedwongen.

Inline-indicator voor Apache Spark-taken

Het Fabric-notebook is gebaseerd op Apache Spark. Codecellen worden op afstand uitgevoerd op het Apache Spark-cluster. Een voortgangsindicator voor Spark-taken wordt geleverd met een realtime voortgangsbalk die u helpt inzicht te krijgen in de uitvoeringsstatus van de taken. 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 op de taaknaam (of fase) te selecteren.

U kunt ook het realtime logboek op celniveau naast de voortgangsindicator vinden en Diagnostica kan u nuttige suggesties bieden om de code te verfijnen en fouten op te sporen.

Schermopname van details van de voortgang van Spark-taken.

In Meer acties kunt u eenvoudig navigeren naar de pagina met details van de Spark-toepassing en de pagina van de Spark-webgebruikersinterface.

Schermopname van details van meer acties.

Geheime redactie

Om te voorkomen dat referenties per ongeluk worden gelekt bij het uitvoeren van notebooks, ondersteunen Fabric notebooks geheime maskerering om de geheime waarden die worden weergegeven in celuitvoer te verbergen met [REDACTED]. Geheime redaction is van toepassing op Python, Scala en R.

Schermopname van geheime redactieverwerking.

Magic-commando's in een notebook

Ingebouwde magische commando's

U kunt bekende Magic-opdrachten voor Ipython gebruiken in Fabric-notebooks. Bekijk de volgende lijst met momenteel beschikbare magic-opdrachten.

Notitie

Dit zijn de enige magic-opdrachten die worden ondersteund in de Fabric-pijplijn: %%pyspark, %%spark, %%csharp, %%sql, %%configure.

Beschikbare lijn magic-opdrachten: %lsmagic, %time, %timeit, %history, %run, %load, %alias, %alias_magic, %autoawait, %autocall, %automagic, %bookmark, %cd, %colors, %dhist, %dirs, %doctest_mode, %killbgscripts, %load_ext, %logoff, %logon, %logstart, %logstate, %logstop, %magic, %matplotlib, %page, %pastebin, %pdef, %pfile, %pinfo, %pinfo2, %popd, %pprint, %precision, %prun, %psearch, %psource, %pushd, %pwd, %pycat, %quickref, %rehashx, %reload_ext, %reset, %reset_selective, %sx, %system, %tb, %unalias, %unload_ext, %who, %who_ls, %whos, %xdel, %xmode.

Fabric Notebook ondersteunt ook de verbeterde bibliotheekbeheeropdrachten %pip en %conda. Zie Apache Spark-bibliotheken beheren in Microsoft Fabric voor meer informatie over het gebruik.

Beschikbare magic-opdrachten voor cellen: %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%configure, %%html, %%bash, %%markdown, %%perl, %%script, %%sh.

Aangepaste magische opdrachten

U kunt ook meer aangepaste magic-opdrachten ontwikkelen om aan uw specifieke behoeften te voldoen. Hier volgt een voorbeeld:

  1. Maak een notitieblok met de naam MyLakehouseModule.

    Schermopname van het definiëren van een aangepaste magie.

  2. In een ander notebook verwijst u naar de "MyLakehouseModule" en de bijbehorende magische commando's. Dit proces is hoe u uw project gemakkelijk kunt organiseren met notebooks die verschillende talen gebruiken.

    Schermopname van het gebruik van aangepaste magie.

IPython widgets

IPython-widgets zijn gebeurtenisvolle Python-objecten die een weergave in de browser hebben. U kunt IPython-widgets gebruiken als besturingselementen met weinig code (bijvoorbeeld schuifregelaar of tekstvak) in uw notebook, net zoals het Jupyter-notebook. Momenteel werkt het alleen in een Python-context.

IPython-widgets gebruiken

  1. Importeer eerst de ipywidgets-module om het Jupyter Widget-framework te gebruiken.

    import ipywidgets as widgets
    
  2. Gebruik de weergavefunctie op het hoogste niveau om een widget weer te geven of laat een expressie van het widgettype achter op de laatste regel van de codecel.

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

    slider = widgets.IntSlider()
    display(slider)
    

    Schermopname van de widget die wordt weergegeven in het uitvoergebied.

  4. Gebruik meerdere display() aanroepen om hetzelfde widgetexemplaren meerdere keren weer te geven. Ze blijven gesynchroniseerd met elkaar.

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

    Schermopname van meerdere keren van één widget.

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

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

    Schermopname van meerdere exemplaren van widgets.

Ondersteunde widgets

Widgetstype Widgets
Numerieke elementen IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText
Booleaanse widgets Schakelknop, selectievakje, geldig
selectiewidgets Vervolgkeuzelijst, Radioknoppen, Selectie, SelectieSchuifregelaar, SelectieBereikSchuifregelaar, Wisselknoppen, MeervoudigSelecteren
String-widgets Tekst, tekstgebied, keuzelijst met invoervak, wachtwoord, label, HTML, HTML-wiskunde, afbeelding, knop
Widgets afspelen (animatie) Datumkiezer, kleurkiezer, controller
Container of indelingswidgets Box, HBox, VBox, GridBox, Accordion, Tabs, Gestapeld

Bekende beperkingen

  • De volgende widgets worden nog niet ondersteund. De volgende tijdelijke oplossingen zijn beschikbaar:

    Functionaliteit Tijdelijke oplossing
    Uitvoerwidget U kunt in plaats daarvan de functie print() gebruiken om tekst naar stdout te schrijven.
    widgets.jslink() U kunt de functie widgets.link() gebruiken om twee vergelijkbare widgets te koppelen.
    Widget FileUpload Nog niet ondersteund.
  • De globale weergavefunctie Fabric biedt geen ondersteuning voor het weergeven van meerdere widgets in één aanroep (bijvoorbeeld display(a, b)). Dit gedrag verschilt van de IPython-weergavefunctie.

  • Als u een notitieblok sluit dat een IPython-widget bevat, kunt u dit pas zien of ermee werken als u de bijbehorende cel opnieuw uitvoert.

  • De interactiefunctie (ipywidgets.interact) wordt niet ondersteund.

Een notebook integreren

Een parametercel aanwijzen

Als u uw notitieblok wilt parameteriseren, selecteert u de beletseltekens (...) om toegang te krijgen tot de Meer opdrachten op de cellenwerkbalk. Selecteer Parametercel in-/uitschakelen om de cel aan te duiden als de parametercel.

Schermopname die laat zien waar u de parameterceloptie Toggle kunt selecteren.

De parametercel is handig voor het integreren van een notebook in een pijplijn. Pijplijnactiviteit 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.

Waarden aan parameters toewijzen vanuit een pijplijn

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

Schermopname die laat zien waar parameters uit een pijplijn moeten worden toegewezen.

Wanneer u parameterwaarden toewijst, kunt u de taal van de pijplijnexpressie of functies en variabelen gebruiken.

Magische opdracht voor Spark-sessieconfiguratie

U kunt uw Spark-sessie aanpassen met de magic-opdracht %%configureren. Fabric notebook ondersteunt aangepaste vCores, geheugen van de Driver en Executor, Apache Spark-eigenschappen, aankoppelpunten, poel en het standaard lakehouse van de notebook sessie. Ze kunnen worden gebruikt in zowel interactieve notitieboek- als pijplijnnotitieboekactiviteiten. U wordt aangeraden de opdracht %%configure aan het begin van uw notebook uit te voeren of u moet de Spark-sessie opnieuw starten om de instellingen van kracht te laten worden.

%%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"]
    "driverCores": 4, // Recommended values: [4, 8, 16, 32, 64]
    "executorMemory": "28g",
    "executorCores": 4,
    "jars": ["abfs[s]: //<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar", "wasb[s]: //<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
    "conf":
    {
        // Example of customized property, you can specify count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
        "livy.rsc.sql.num-rows": "3000",
        "spark.log.level": "ALL"
    },
    "defaultLakehouse": {  // This overwrites the default lakehouse for current session
        "name": "<lakehouse-name>",
        "id": "<(optional) lakehouse-id>",
        "workspaceId": "<(optional) workspace-id-that-contains-the-lakehouse>" // Add workspace ID if it's from another workspace
    },
    "mountPoints": [
        {
            "mountPoint": "/myMountPoint",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>"
        },
        {
            "mountPoint": "/myMountPoint1",
            "source": "abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path1>"
        },
    ],
    "environment": {
        "id": "<environment-id>",
        "name": "<environment-name>"
    },
    "sessionTimeoutInSeconds": 1200,
    "useStarterPool": false,  // Set to true to force using starter pool
    "useWorkspacePool": "<workspace-pool-name>"
}

Notitie

  • U wordt aangeraden dezelfde waarde in te stellen voor DriverMemory en ExecutorMemory in %%configure. De waarden 'driverCores' en 'executorCores' moeten ook hetzelfde zijn.
  • De 'defaultLakehouse' zal uw vastgemaakte Lakehouse in Lakehouse Explorer overschrijven, maar dat werkt alleen in uw huidige notebook-sessie.
  • U kunt %%configure in Fabric-pijplijnen gebruiken, maar als deze niet is ingesteld in de eerste codecel, mislukt de pijplijnuitvoering omdat de sessie niet opnieuw kan worden gestart.
  • De %%-configuratie die wordt gebruikt in notebookutils.notebook.run wordt genegeerd, maar de %run notebook blijft doorgaan met uitvoeren.
  • De standaardconfiguratie-eigenschappen van Spark moeten worden gebruikt in de hoofdtekst 'conf'. Fabric biedt geen ondersteuning voor referentie op het eerste niveau voor de Spark-configuratie-eigenschappen.
  • Sommige speciale Spark-eigenschappen, zoals "spark.driver.cores", "spark.executor.cores", "spark.driver.memory", "spark.executor.memory" en "spark.executor.instances" hebben geen effect in de "conf"-regel.

Configuratie van geparameteriseerde sessie vanuit een pijplijn

Met de configuratie van een geparameteriseerde sessie kunt u het commando in %%configure magic vervangen door de parameters van de pipeline-uitvoeringsnotebookactiviteit. Wanneer u %%codecel voorbereidt, kunt u in het onderstaande voorbeeld standaardwaarden overschrijven (ook configureerbaar, 4 en 2000) met een object als volgt:

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

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

Een notebook gebruikt de standaardwaarde als u een notebook rechtstreeks in de interactieve stand uitvoert of als de notebook-activiteit van de pijplijn geen parameter biedt die overeenkomt met "activityParameterName."

Tijdens een pipeline-uitvoering kun je de instellingen voor de activiteiten van het pipelinenotitieboek als volgt configureren:

Schermopname die laat zien waar een geparameteriseerde sessie moet worden geconfigureerd.

Als u de sessieconfiguratie wilt wijzigen, moeten de naam van de parameters van de activiteit 'notitieblok' in de pijplijn hetzelfde zijn als parameterName in het notitieblok. In dit voorbeeld van het uitvoeren van een pijplijn worden driverCores in %%configure vervangen door 8 en livy.rsc.sql.num-rows vervangen door 4000.

Notitie

  • Als het uitvoeren van een pijplijn mislukt omdat u de magic-opdracht %%configure hebt gebruikt, kunt u meer foutinformatie vinden door de magic-cel %%configure uit te voeren in de interactieve modus van het notebook.
  • Geplande notebookuitvoeringen bieden geen ondersteuning voor geparameteriseerde sessieconfiguratie.

Python-logboekregistratie in een notebook

U kunt Python-logboeken vinden en verschillende logboekniveaus en -indeling instellen, zoals de voorbeeldcode die hier wordt weergegeven:

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

De geschiedenis van invoeropdrachten weergeven

Fabric Notebook biedt ondersteuning voor magic-opdrachten %history om de geschiedenis van de invoeropdrachten af te drukken die in de huidige sessie zijn uitgevoerd, in tegenstelling tot de standaard Jupyter Ipython-opdracht die werkt voor contexten in meerdere talen binnen notebooks.

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

Voor opties:

  • -n: Uitvoeringsnummer afdrukken.

Waar het bereik kan zijn als volgt:

  • N: Druk de code van de Nde uitgevoerde cel af.
  • M-N: Print code van de Mde tot de Nde uitgevoerde cel.

Voorbeeld:

  • Invoergeschiedenis afdrukken van de eerste tot de tweede uitgevoerde cel: %history -n 1-2

Sneltoetsen

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

  • Een cel bevindt zich in de opdrachtmodus wanneer er geen tekstcursor is die aangeeft dat je kunt 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 Esc te drukken of door de muis te gebruiken om buiten het editorgebied van een cel te selecteren.

    Schermopname van een cel in de opdrachtmodus.

  • De bewerkingsmodus kan worden aangegeven via 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 op Enter te drukken of met de muis het editorgebied van een cel te selecteren.

    Schermopname van een cel in de bewerkingsmodus.

Sneltoetsen in commando-modus

Actie Notitieboek sneltoetsen
Voer de huidige cel uit en selecteer hieronder Shift+Enter
Voer de huidige cel uit en plaats een invoeging hieronder. Alt + Enter
Huidige cel uitvoeren Ctrl+Enter
Cel erboven selecteren Omhoog
Selecteer de cel hieronder Omlaag
Vorige cel selecteren K
Volgende cel selecteren J
Cel erboven invoegen Een
Cel hieronder invoegen B
Geselecteerde cellen verwijderen Shift + D
Overschakelen naar bewerkingsmodus Invoeren

Sneltoetsen in de bewerkingsmodus

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

Actie Notitieboek sneltoetsen
Cursor omhoog verplaatsen Omhoog
Cursor omlaag verplaatsen Omlaag
Ongedaan Ctrl+Z
Opnieuw Ctrl+Y
Opmerking of opmerking ongedaan maken Ctrl + /
Opmerking: Ctrl + K + C
Verwijder opmerkingen: Ctrl + K + U
Verwijder het woord vóór Ctrl+Backspace
Verwijder het woord na Ctrl+Delete
Ga naar het begin van de cel Ctrl + Home
Ga naar het einde van de cel Ctrl+End
Ga één woord naar links Ctrl + links
Ga één woord naar rechts Ctrl+rechts
Alles selecteren Ctrl + A
Inspringen Ctrl+]
Dedent Ctrl+[
Overschakelen naar opdrachtmodus Esc

Om alle sneltoetsen te vinden, selecteert u Weergave op het lint van het notitieblok, en selecteert u Toetsbindingen.