Share via


Synapse-jegyzetfüzetek létrehozása, fejlesztése és karbantartása az Azure Synapse Analyticsben

A Synapse-jegyzetfüzet egy webes felület, amellyel élő kódot, vizualizációkat és elbeszélő szöveget tartalmazó fájlokat hozhat létre. A notebookok kitűnően alkalmasak az ötletek kipróbálására és gyors kísérletek elvégzésére, amelyekkel megállapításokat tehet az adatokról. A jegyzetfüzeteket széles körben használják az adatok előkészítésében, az adatvizualizációban, a gépi tanulásban és más Big Data-forgatókönyvekben is.

Synapse-jegyzetfüzetekkel a következőt teheti:

  • Első lépések a nulla beállítási munkával.
  • Az adatok védelme a beépített vállalati biztonsági funkciókkal.
  • Adatok elemzése nyers formátumok (CSV, txt, JSON stb.), feldolgozott fájlformátumok (parquet, Delta Lake, ORC stb.) és SQL-táblázatos adatfájlok között a Spark és az SQL használatával.
  • Legyen hatékony a bővített szerzői képességekkel és a beépített adatvizualizációval.

Ez a cikk bemutatja, hogyan használhat jegyzetfüzeteket a Synapse Studióban.

Jegyzetfüzet létrehozása

A jegyzetfüzetek kétféleképpen hozhatók létre. Létrehozhat egy új jegyzetfüzetet, vagy importálhat egy meglévő jegyzetfüzetet egy Synapse-munkaterületre az Object Explorerből. A Synapse-jegyzetfüzetek felismerik a standard Jupyter Notebook IPYNB-fájlokat.

Képernyőkép új vagy importálási jegyzetfüzet létrehozásáról

Jegyzetfüzetek fejlesztése

A jegyzetfüzetek cellákból állnak, amelyek önálló kód- vagy szövegblokkok, amelyek egymástól függetlenül vagy csoportként futtathatók.

Gazdag műveleteket biztosítunk a jegyzetfüzetek fejlesztéséhez:

Feljegyzés

A jegyzetfüzetekben automatikusan létrejön egy SparkSession, amelyet egy úgynevezett sparkváltozó tárol. A SparkContextnek is van egy változója, amelynek a neve sc. A felhasználók közvetlenül hozzáférhetnek ezekhez a változókhoz, és nem módosíthatják ezeknek a változóknak az értékeit.

Cella hozzáadása

Többféleképpen is felvehet új cellát a jegyzetfüzetbe.

  1. Mutasson a két cella közötti térközre, és válassza a Kód vagy a Markdown lehetőséget. Az add-azure-notebook-cell-with-cell-button képernyőképe

  2. Parancs módban használja az aznb billentyűparancsokat. Az A billentyűt lenyomva szúrjon be egy cellát az aktuális cella fölé. A B billentyűt lenyomva szúrjon be egy cellát az aktuális cella alá.


Elsődleges nyelv beállítása

A Synapse-jegyzetfüzetek négy Apache Spark-nyelvet támogatnak:

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

Az új hozzáadott cellák elsődleges nyelvét a felső parancssáv legördülő listájából állíthatja be.

Képernyőkép az alapértelmezett synapse-language nyelvről

Több nyelv használata

Egy jegyzetfüzetben több nyelvet is használhat, ha megadja a megfelelő nyelvvarázsló parancsot a cella elején. Az alábbi táblázat a cellanyelvek közötti váltáshoz használható varázsparancsokat sorolja fel.

Magic parancs Nyelv Leírás
%%pyspark Python Python-lekérdezés végrehajtása a Spark-környezettel.
%%spark Scala Scala-lekérdezés végrehajtása a Spark-környezettel.
%%sql SparkSQL SparkSQL-lekérdezés végrehajtása a Spark-környezettel.
%%csharp .NET a Spark C-hez# Futtasson egy .NET-lekérdezést Spark C# -lekérdezéshez a Spark-környezettel.
%%sparkr R R-lekérdezés végrehajtása a Spark-környezettel.

Az alábbi kép egy példa arra, hogyan írhat PySpark-lekérdezést a %%pyspark magic paranccsal vagy sparkSQL-lekérdezéssel a %%sql magic paranccsal egy Spark(Scala) jegyzetfüzetben. Figyelje meg, hogy a jegyzetfüzet elsődleges nyelve pySparkra van állítva.

Képernyőkép a Synapse spark magic parancsokról

Ideiglenes táblák használata nyelvek közötti adatokra való hivatkozáshoz

Synapse-jegyzetfüzetekben nem hivatkozhat közvetlenül az adatokra vagy változókra a különböző nyelveken. A Sparkban egy ideiglenes tábla több nyelven is hivatkozható. Íme egy példa arra, hogyan olvashatja be Scala a DataFrame-et egy Spark temp-táblában PySpark , és SparkSQL hogyan használhatja kerülő megoldásként.

  1. Az 1. cellában olvasson be egy DataFrame-et egy SQL-készlet-összekötőből a Scala használatával, és hozzon létre egy ideiglenes táblát.

    %%spark
    val scalaDataFrame = spark.read.sqlanalytics("mySQLPoolDatabase.dbo.mySQLPoolTable")
    scalaDataFrame.createOrReplaceTempView( "mydataframetable" )
    
  2. A 2. cellában a Spark SQL használatával kérdezheti le az adatokat.

    %%sql
    SELECT * FROM mydataframetable
    
  3. A 3. cellában használja az adatokat a PySparkban.

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

IDE-stílusú IntelliSense

A Synapse-jegyzetfüzetek integrálva vannak a Monaco-szerkesztővel, hogy IDE-stílusú IntelliSense-t hozzanak a cellaszerkesztőbe. A szintaxis kiemelése, a hibajelölő és az automatikus kódkiegészítések segítenek a kód írásában és a problémák gyorsabb azonosításában.

Az IntelliSense funkciói különböző fejlettségi szinteken érhetők el a különböző nyelvek esetében. Az alábbi táblázatból megtudhatja, hogy mi támogatott.

Nyelvek Szintaxiskiemelés Szintaxis hibajelölője Szintaxiskód kitöltése Változókód kitöltése Rendszerfüggvény kódjának befejezése Felhasználói függvény kódjának kitöltése Intelligens behúzás Kód összecsukása
PySpark (Python) Igen Igen Igen Igen Igen Igen Igen Igen
Spark (Scala) Igen Igen Igen Igen Igen Igen - Igen
SparkSQL Igen Igen Igen Igen Igen - - -
.NET sparkhoz (C#) Igen Igen Igen Igen Igen Igen Igen Igen

Feljegyzés

Aktív Spark-munkamenetre van szükség a változókód-kiegészítés, a rendszerfüggvény-kódkiegészítés, a .NET for Spark (C#) felhasználói függvénykódjának kiegészítéséhez.

Kódtöredékek

A Synapse-jegyzetfüzetek olyan kódrészleteket biztosítanak, amelyek megkönnyítik a gyakran használt kódminták megadását, például a Spark-munkamenet konfigurálását, az adatok Spark DataFrame-ként való olvasását vagy a matplotlib-diagramok rajzolását stb.

A kódrészletek az IDE-stílus IntelliSense billentyűparancsaiban jelennek meg, más javaslatokkal vegyesen. A kódrészletek tartalma a kódcella nyelvéhez igazodik. Az elérhető kódtöredékeket a kódrészlet beírásával tekintheti meg, vagy bármely kulcsszó megjelenik a kódrészlet címében a kódcella-szerkesztőben. Az olvasás beírásával például megtekintheti a kódrészletek listáját, amelyekkel adatokat olvashat különböző adatforrásokból.

Synapse-kódrészletek animált GIF-jei

Szövegcella formázása eszköztárgombokkal

A szövegcellák eszköztárának formázási gombjaival elvégezheti a gyakori markdown-műveleteket. Ez magában foglalja a félkövér szöveget, a dőlt szöveget, a bekezdést/fejléceket egy legördülő menüben, a kód beszúrását, a rendezetlen lista beszúrását, a rendezett lista beszúrását, a hivatkozás beszúrását és a kép beszúrását az URL-címből.

Képernyőkép a Synapse szövegcellájának eszköztáráról


Cellaművelet visszavonása/ismételt végrehajtása

Válassza a Visszavonási / teendő gombot, vagy nyomja le a Z / Shift+Z billentyűkombinációt a legutóbbi cellaműveletek visszavonásához. Most már visszavonhatja/megismételheti a legutóbbi 10 előzménycella-műveletet.

Képernyőkép az aznb Synapse-celláinak visszavonásáról

Támogatott visszavonási cellaműveletek:

  • Cella beszúrása/törlése: A Törlés gombra kattintva visszavonhatja a törlési műveleteket, és a szöveg tartalma a cellával együtt marad.
  • Cella átrendezés.
  • Kapcsolóparaméter.
  • Konvertálás a Kód és a Markdown cella között.

Feljegyzés

A cellában belüli szövegműveletek és a kódcellák megjegyzési műveletei nem vonhatók vissza. Most már visszavonhatja/megismételheti a legutóbbi 10 előzménycella-műveletet.


Kódcellák megjegyzése

  1. A Megjegyzések ablaktábla megnyitásához válassza a Jegyzetfüzet eszköztár Megjegyzések gombját.

    Képernyőkép a Synapse megjegyzés gombjáról

  2. Jelöljön ki kódot a kódcellában, kattintson az Új gombra a Megjegyzések panelen, adja hozzá a megjegyzéseket, majd kattintson a Megjegyzés közzététele gombra a mentéshez.

    Képernyőkép a Synapse új megjegyzéséről

  3. A Megjegyzés szerkesztése, a Szál feloldása vagy a Szál törlése parancsot a megjegyzés mellett a Továbbiak gombra kattintva hajthatja végre.

    Képernyőkép a Synapse szerkesztési megjegyzéséről


Cella áthelyezése

Kattintson a cella bal oldalára, és húzza a kívánt helyre. A Synapse mozgatócelláinak animált GIF-je


Cella törlése

Cella törléséhez kattintson a cella jobb oldalán található Törlés gombra.

Parancs módban billentyűparancsokat is használhat. Az aktuális cella törléséhez nyomja le a Shift+D billentyűkombinációt.

Képernyőkép az azure-notebook-delete-a-celláról


Cellabemenet összecsukása

Válassza a További parancsok három pontot (...) a cella eszköztárán, és a Bemenet elrejtése lehetőséget az aktuális cella bemenetének összecsukásához. A kibontásához jelölje ki a Bemenet megjelenítése lehetőséget, amíg a cella összecsukva van.

Az azure-notebook-collapse-cell-input animált GIF-fájlja


Cellakimenet összecsukása

Válassza a További parancsok három pontot (...) a cella eszköztárán, és a Kimenet elrejtése lehetőséget az aktuális cella kimenetének összecsukásához. A kibontásához jelölje ki a Kimenet megjelenítése lehetőséget, amíg a cella kimenete rejtett.

Animált GIF az Azure-notebook-collapse-cell-outputról


Jegyzetfüzet körvonala

A Vázlatok (Tartalomjegyzék) egy oldalsávablakban lévő markdown-cella első Markdown-fejlécét jeleníti meg a gyors navigáláshoz. A Vázlatok oldalsáv átméretezhető és összecsukható, hogy a lehető legjobban illeszkedjen a képernyőhöz. Az oldalsáv megnyitásához vagy elrejtéséhez válassza a jegyzetfüzet parancssávjának Vázlat gombját

Képernyőkép az Azure-notebook vázlatáról


Jegyzetfüzetek futtatása

A jegyzetfüzet kódcellái egyenként vagy egyszerre is futtathatók. Az egyes cellák állapota és állapota a jegyzetfüzetben jelenik meg.

Cella futtatása

A kódot többféleképpen is futtathatja egy cellában.

  1. Mutasson a futtatni kívánt cellára, és válassza a Cella futtatása gombot, vagy nyomja le a Ctrl+Enter billentyűkombinációt.

    Képernyőkép az 1. futtató celláról

  2. Parancs módban használjon billentyűparancsokat. Nyomja le a Shift+Enter billentyűkombinációt az aktuális cella futtatásához, és jelölje ki az alábbi cellát. Nyomja le az Alt+Enter billentyűkombinációt az aktuális cella futtatásához, és szúrjon be egy új cellát alá.


Az összes cella futtatása

Az Összes futtatása gombra kattintva az aktuális jegyzetfüzet összes celláját egymás után futtathatja.

Képernyőkép a teljes cellák futtatásáról

Az összes cella futtatása a fenti vagy az alatti cellákban

Bontsa ki a legördülő listát az Összes futtatása gombra, majd válassza a Fenti Cellák futtatása lehetőséget az aktuális fölötti cellák sorozatban való futtatásához. Válassza az alábbi Cellák futtatása lehetőséget, ha az aktuális alatti összes cellát egymás után szeretné futtatni.

Képernyőkép az azure-notebook-run-cells-above-or-below


Az összes futó cella megszakítása

A Mégse gombra kattintva megszakíthatja az üzenetsorban várakozó futó cellákat vagy cellákat. Képernyőkép az azure-notebook-cancel-all-cellsről


Jegyzetfüzet-referencia

A magic paranccsal hivatkozhat %run <notebook path> egy másik jegyzetfüzetre az aktuális jegyzetfüzet környezetében. A referenciajegyzetfüzetben definiált összes változó elérhető az aktuális jegyzetfüzetben. %run A magic parancs támogatja a beágyazott hívásokat, de nem támogatja a rekurzív hívásokat. Kivételt kap, ha az utasítás mélysége ötnél nagyobb.

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

A jegyzetfüzet-referencia interaktív módban és Synapse-folyamatban is működik.

Feljegyzés

  • %run a parancs jelenleg csak paraméterként támogatja az abszolút elérési út vagy jegyzetfüzetnév átadását, a relatív elérési út nem támogatott.
  • %run a parancs jelenleg csak 4 paraméterértéktípust támogat: int, float, bool, string, változócsere művelet nem támogatott.
  • A hivatkozott jegyzetfüzeteket közzé kell tenni. A jegyzetfüzetekre való hivatkozáshoz közzé kell tennie a jegyzetfüzeteket, hacsak nincs engedélyezve a nem közzétett jegyzetfüzetre való hivatkozás. A Synapse Studio nem ismeri fel a Git-adattár nem közzétett jegyzetfüzeteit.
  • A hivatkozott jegyzetfüzetek nem támogatják azt az állítást, hogy a mélység ötnél nagyobb.

Változókezelő

A Synapse-jegyzetfüzet egy beépített változókezelőt biztosít, amely a PySpark (Python) cellák jelenlegi Spark-munkamenetében a változók nevét, típusát, hosszát és értékét tartalmazza. A kódcellákban definiált további változók automatikusan megjelennek. Az egyes oszlopfejlécekre kattintva rendezheti a tábla változóit.

A változókezelő megnyitásához vagy elrejtéséhez válassza a jegyzetfüzet parancssávjának Változók gombját.

Képernyőkép az azure-notebook-variable-explorerről

Feljegyzés

A Változókezelő csak a Pythont támogatja.


Cellaállapot-jelző

A cella alatt lépésenkénti cellavégrehajtási állapot jelenik meg, amely segít az aktuális állapot megtekintésében. Miután a cellafuttatás befejeződött, megjelenik egy végrehajtási összegzés, amely tartalmazza a teljes időtartamot és a befejezési időt, és a jövőben is ott marad.

Képernyőkép a cellaállapotról

Spark-folyamatjelző

A Synapse-jegyzetfüzet tisztán Spark-alapú. A kódcellák távoli végrehajtása a kiszolgáló nélküli Apache Spark-készletben történik. Megjelenik egy Spark-feladat előrehaladási mutatója egy valós idejű folyamatjelzővel, amely segít megérteni a feladat végrehajtási állapotát. Az egyes feladatok vagy fázisok tevékenységeinek száma segít azonosítani a spark-feladat párhuzamos szintjét. A feladat (vagy szakasz) nevének hivatkozásának kiválasztásával részletesebben is részletezheti egy adott feladat (vagy szakasz) Spark felhasználói felületét.

Képernyőkép a spark-progress mutatóról

Spark-munkamenet konfigurálása

A Konfigurálás munkamenetben megadhatja az időtúllépés időtartamát, a végrehajtók számát és méretét. A Spark-munkamenet újraindítása a konfigurációs módosítások érvénybe lépéséhez szükséges. Az összes gyorsítótárazott jegyzetfüzetváltozó törlődik.

Létrehozhat egy konfigurációt is az Apache Spark-konfigurációból, vagy kiválaszthat egy meglévő konfigurációt. További részletekért tekintse meg az Apache Spark Configuration Managementet.

Képernyőkép a munkamenet-kezelésről

Spark-munkamenet konfigurációs varázsló parancsa

A Spark-munkamenet beállításait a %%configure varázsparancson keresztül is megadhatja. A spark-munkamenetnek újra kell indulnia a beállítások érvénybe lépéséhez. Javasoljuk, hogy futtassa a %%-konfigurálást a jegyzetfüzet elején. Íme egy minta, amely az https://github.com/cloudera/livy#request-body érvényes paraméterek teljes listáját tartalmazza.

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

Feljegyzés

  • A "DriverMemory" és a "ExecutorMemory" érték beállítása a %%configureban javasolt, így a "driverCores" és a "executorCores" is.
  • Használhatja a %%-konfigurálást a Synapse-folyamatokban, de ha nincs beállítva az első kódcellában, a folyamat futtatása meghiúsul, mert nem lehet újraindítani a munkamenetet.
  • Az mssparkutils.notebook.run fájlban használt %%-konfigurálás figyelmen kívül lesz hagyva, de a(z) %run notebookban való használat folytatódik.
  • A standard Spark-konfigurációs tulajdonságokat a "conf" törzsben kell használni. Nem támogatjuk a Spark konfigurációs tulajdonságainak első szintű referenciáját.
  • Egyes speciális spark-tulajdonságok, például a "spark.driver.cores", a "spark.executor.cores", a "spark.driver.memory", a "spark.executor.memory", a "spark.executor.instances" nem lépnek érvénybe a "conf" törzsben.

Paraméteres munkamenet-konfiguráció a folyamatból

A paraméteres munkamenet-konfiguráció lehetővé teszi, hogy a %%configure magic értékét pipeline run (Notebook activity) paraméterekkel helyettesítse. %%konfigurálási cella előkészítésekor felülbírálhatja az alapértelmezett értékeket (az alábbi példában is konfigurálható, 4 és "2000" érték) egy ilyen objektummal:

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

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

A jegyzetfüzet akkor használja az alapértelmezett értéket, ha közvetlenül interaktív módban futtat egy jegyzetfüzetet, vagy a folyamatjegyzetfüzet-tevékenység nem adja meg az "activityParameterName" paraméternek megfelelő paramétert.

A folyamatfuttatási mód során a folyamatjegyzetfüzet tevékenységbeállításai az alábbiak szerint konfigurálhatók: Képernyőkép a paraméteres munkamenet-konfigurációról

Ha módosítani szeretné a munkamenet-konfigurációt, a folyamatjegyzetfüzet tevékenységparaméter-nevének meg kell egyeznie a jegyzetfüzet activityParameterName paraméterével. A folyamat futtatásakor ebben a példában a %%configure driverCores értéke 8, a livy.rsc.sql.num sorokat pedig 4000 váltja fel.

Feljegyzés

Ha a futtatási folyamat az új %%configure magic használata miatt meghiúsult, további hibainformációkat a %%configure magic cellának a jegyzetfüzet interaktív módban való futtatásával ellenőrizheti.

Adatok felvétele jegyzetfüzetbe

Az alábbi kódmintákban látható módon adatokat tölthet be az Azure Blob Storage-ból, az Azure Data Lake Store Gen 2-ből és az SQL-készletből.

CSV olvasása az Azure Data Lake Store Gen2-ből Spark DataFrame-ként

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

CSV olvasása az Azure Blob Storage-ból Spark DataFrame-ként


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)

Adatok olvasása az elsődleges tárfiókból

Az elsődleges tárfiók adatai közvetlenül is elérhetők. Nem kell megadni a titkos kulcsokat. Az Adatkezelőben kattintson a jobb gombbal egy fájlra, és válassza az Új jegyzetfüzet lehetőséget egy új, automatikus adatkiszívóval rendelkező jegyzetfüzet megtekintéséhez.

Képernyőkép az adatok celláról cellára

IPython widgetek

A widgetek eseménydús Python-objektumok, amelyek a böngészőben jelennek meg, gyakran vezérlőként, például csúszkaként, szövegdobozként stb. Az IPython Widgetek csak Python-környezetben működnek, más nyelveken (például Scala, SQL, C#) még nem támogatottak.

Az IPython widget használata

  1. Először importálnia ipywidgets kell a modult a Jupyter Widget keretrendszer használatához.

    import ipywidgets as widgets
    
  2. A legfelső szintű display függvény használatával megjeleníthet egy widgetet, vagy a vezérlőtípus kifejezését a kódcella utolsó sorában hagyhatja.

    slider = widgets.IntSlider()
    display(slider)
    
    slider = widgets.IntSlider()
    slider
    
  3. Futtassa a cellát, és a widget a kimeneti területen jelenik meg.

    Képernyőkép az ipython widgetek csúszkájáról

  4. Több display() hívással többször is megjelenítheti ugyanazt a widgetpéldányt, de szinkronban maradnak egymással.

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

    Képernyőkép az ipython widgetek csúszkáiról

  5. Két, egymástól független widget megjelenítéséhez hozzon létre két widgetpéldányt:

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

Támogatott widgetek

Widgetek típusa Vezérlők
Numerikus widgetek IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSlider, IntProgress, FloatProgress, BoundedIntText, BoundedFloatText, IntText, FloatText
Logikai vezérlők ToggleButton, Checkbox, Valid
Kijelölési widgetek Legördülő lista, RadioButtons, Select, SelectionSlider, SelectionRangeSlider, ToggleButtons, SelectMultiple
Sztring widgetek Szöveg, Szövegterület, Kombinált lista, Jelszó, Címke, HTML, HTML matematika, kép, gomb
Lejátszási (animációs) widgetek Dátumválasztó, Színválasztó, Vezérlő
Tároló-/elrendezési vezérlők Box, HBox, VBox, GridBox, Harmonika, Lapok, Halmozott

Ismert korlátozások

  1. A következő vezérlők még nem támogatottak, a megfelelő kerülő megoldást az alábbiak szerint követheti:

    Funkciók Áthidaló megoldás
    Output Widget A függvényt használhatja print() a szöveg stdoutba való írásához.
    widgets.jslink() A függvény segítségével widgets.link() összekapcsolhat két hasonló widgetet.
    FileUpload Widget Még nem támogatott.
  2. A Synapse által biztosított globális display függvény nem támogatja több widget megjelenítését egy hívásban (azaz display(a, b)), amely eltér az IPython display függvénytől.

  3. Ha bezár egy IPython Widgetet tartalmazó jegyzetfüzetet, nem fogja látni vagy használni, amíg újra nem hajtja végre a megfelelő cellát.


Jegyzetfüzetek mentése

Egyetlen jegyzetfüzetet vagy a munkaterület összes jegyzetfüzetét mentheti.

  1. Ha egyetlen jegyzetfüzeten végzett módosításokat szeretne menteni, válassza a Jegyzetfüzet parancssáv Közzététel gombját.

    Képernyőkép a közzétételi jegyzetfüzetről

  2. A munkaterület összes jegyzetfüzetének mentéséhez válassza az Összes közzététele gombot a munkaterület parancssávján.

    Képernyőkép az összes közzétételéről

A jegyzetfüzet tulajdonságaiban beállíthatja, hogy a cellakimenet szerepeljen-e a mentéskor.

Képernyőkép a jegyzetfüzet tulajdonságairól

Mágikus parancsok

A Synapse-jegyzetfüzetekben ismerős Jupyter-varázsparancsokat használhat. Tekintse át az alábbi listát az aktuálisan elérhető varázsparancsokként. Mondja el a gitHub használati eseteit, hogy továbbra is további mágikus parancsokat építhessünk ki az igényeinek megfelelően.

Feljegyzés

A Synapse-folyamatban csak a következő mágikus parancsok támogatottak: %%pyspark, %%spark, %%csharp, %%sql.

Elérhető vonalvariánsok: %lsmagic, %time, %timeit, %history, %run, %load

Elérhető cellavarázsok: %%time, %%timeit, %%capture, %%writefile, %%sql, %%pyspark, %%spark, %%csharp, %%html, %%configure


Hivatkozás közzé nem hozott jegyzetfüzetre

A nem közzétett jegyzetfüzetek hivatkozása akkor hasznos, ha "helyileg" szeretne hibakeresést végezni. A funkció engedélyezésekor a jegyzetfüzet futtatása lekéri a webes gyorsítótár aktuális tartalmát. Ha egy cellát futtat, beleértve egy referenciajegyzetfüzet-utasítást is, akkor a fürtön mentett verziók helyett az aktuális jegyzetfüzetböngészőben lévő bemutató jegyzetfüzetekre kell hivatkoznia, ami azt jelenti, hogy a jegyzetfüzet-szerkesztő módosításaira azonnal hivatkozhatnak más jegyzetfüzetek anélkül, hogy közzé kellene tenni (élő módban) vagy véglegesítenék őket. Git mód) segítségével könnyedén elkerülheti, hogy a gyakori kódtárak szennyeződjenek a fejlesztési vagy hibakeresési folyamat során.

A Nem közzétett jegyzetfüzet hivatkozása a Tulajdonságok panelen engedélyezhető:

Képernyőkép a jegyzetfüzet-referenciáról

A különböző esetek összehasonlításához tekintse meg az alábbi táblázatot:

Figyelje meg, hogy a (z) %run és az mssparkutils.notebook.run ugyanazzal a viselkedési módokkal rendelkezik. Ezt használjuk %run példaként.

Eset Letiltás Engedélyezés
Élő mód
- Nb1 (Közzétéve)
%run Nb1
Az Nb1 közzétett verziójának futtatása Az Nb1 közzétett verziójának futtatása
- Nb1 (Új)
%run Nb1
Hiba Új Nb1 futtatása
- Nb1 (Korábban közzétett, szerkesztett)
%run Nb1
Az Nb1 közzétett verziójának futtatása Az Nb1 szerkesztett verziójának futtatása
Git mód
- Nb1 (Közzétéve)
%run Nb1
Az Nb1 közzétett verziójának futtatása Az Nb1 közzétett verziójának futtatása
- Nb1 (Új)
%run Nb1
Hiba Új Nb1 futtatása
- Nb1 (Nincs közzétéve, véglegesített)
%run Nb1
Hiba Véglegesített Nb1 futtatása
- Nb1 (Korábban közzétett, véglegesített)
%run Nb1
Az Nb1 közzétett verziójának futtatása Az Nb1 véglegesített verziójának futtatása
- Nb1 (Korábban közzétett, új az aktuális ágban)
%run Nb1
Az Nb1 közzétett verziójának futtatása Új Nb1 futtatása
- Nb1 (Nincs közzétéve, korábban véglegesítve, szerkesztve)
%run Nb1
Hiba Az Nb1 szerkesztett verziójának futtatása
- Nb1 (Korábban közzétett és véglegesített, szerkesztett)
%run Nb1
Az Nb1 közzétett verziójának futtatása Az Nb1 szerkesztett verziójának futtatása

Összegzés

  • Ha le van tiltva, mindig futtassa a közzétett verziót.
  • Ha engedélyezve van, a prioritás a következő: szerkesztett/ új > véglegesített > közzétett.

Aktív munkamenet-kezelés

Most már kényelmesen újra felhasználhatja a jegyzetfüzet-munkameneteket anélkül, hogy újakat kellene kezdenie. A Synapse-jegyzetfüzet mostantól támogatja az aktív munkamenetek kezelését a Munkamenetek kezelése listában. A jegyzetfüzetből indított aktuális munkaterület összes munkamenetét megtekintheti.

Képernyőkép a jegyzetfüzet-kezelés munkamenetekről

Az Aktív munkamenetek listában láthatja a munkamenet adatait és a munkamenethez jelenleg csatolt jegyzetfüzetet. Innen kezelheti a Leválasztás jegyzetfüzettel, a munkamenet leállítása és a Megtekintés a figyelésben parancsot. Ezenkívül egyszerűen csatlakoztathatja a kijelölt jegyzetfüzetet egy aktív munkamenethez a másik jegyzetfüzetből indult listában, a munkamenet leválasztva lesz az előző jegyzetfüzetről (ha nem tétlen), majd csatolja az aktuálishoz.

Képernyőkép a jegyzetfüzet-munkamenetek listájáról

Python-naplózás a Jegyzetfüzetben

A Python-naplók az alábbi mintakód alapján különböző naplószinteket és formátumot állíthatnak be:

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

Bemeneti parancsok előzményeinek megtekintése

A Synapse notebook támogatja a magic parancsot %history az aktuális munkamenetben végrehajtott bemeneti parancselőzmények nyomtatásához, összehasonlítva a standard Jupyter Ipython paranccsal, amely a %history jegyzetfüzet több nyelvi környezetében működik.

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

Lehetőségek:

  • -n: Végrehajtási szám nyomtatása.

Ahol a tartomány lehet:

  • N: Az Nth által végrehajtott cella kódjának nyomtatása.
  • M-N: Kód nyomtatása az Mth-ből az Nth-be végrehajtott cellába.

Példa:

  • Bemeneti előzmények nyomtatása az 1. és a 2. végrehajtott cella között: %history -n 1-2

Jegyzetfüzet integrálása

Jegyzetfüzet hozzáadása folyamathoz

A jobb felső sarokban található Hozzáadás a folyamathoz gombra kattintva jegyzetfüzetet vehet fel egy meglévő folyamatba, vagy új folyamatot hozhat létre.

Képernyőkép a jegyzetfüzet hozzáadása folyamathoz

Paramétercella kijelölése

A jegyzetfüzet paraméterezéséhez válassza a három pontot (...) a további parancsok eléréséhez a cella eszköztárán. Ezután válassza a Paramétercella váltása lehetőséget a cella paramétercelláként való kijelöléséhez.

Képernyőkép az azure-notebook-toggle-paraméterről


Az Azure Data Factory megkeresi a paramétercellát, és alapértelmezés szerint kezeli ezt a cellát a végrehajtási időpontban átadott paraméterekhez. A végrehajtási motor egy új cellát ad hozzá a paramétercella alá bemeneti paraméterekkel, hogy felülírja az alapértelmezett értékeket.

Paraméterek értékeinek hozzárendelése folyamatból

Miután létrehozott egy paraméterekkel rendelkező jegyzetfüzetet, végrehajthatja azt egy synapse notebook-tevékenységgel rendelkező folyamatból. Miután hozzáadta a tevékenységet a folyamatvászonhoz, beállíthatja a paraméterek értékeit a Gépház lap Alapparaméterek szakaszában.

Képernyőkép a paraméter hozzárendeléséről

Paraméterértékek hozzárendelésekor használhatja a folyamatkifejezés nyelvét vagy rendszerváltozóit.

Billentyűparancsok

A Jupyter notebookokhoz hasonlóan a Synapse-jegyzetfüzetek is rendelkeznek modális felhasználói felülettel. A billentyűzet különböző műveleteket végez attól függően, hogy a jegyzetfüzetcella milyen módban van. A Synapse-jegyzetfüzetek az alábbi két módot támogatják egy adott kódcellához: parancsmód és szerkesztési mód.

  1. A cellák parancsmódban vannak, ha nincs szövegkurzor, amely a beírásra kéri. Ha egy cella Parancs módban van, szerkesztheti a jegyzetfüzet egészét, de nem írhat be egyes cellákba. A parancsmód megadásához nyomja ESC le vagy használja az egérrel a cella szerkesztőterületén kívülre történő kijelölést.

    Képernyőkép a parancsmódról

  2. A szerkesztési módot egy szövegkurzor jelzi, amely arra kéri, hogy írja be a szerkesztőterületet. Ha egy cella szerkesztési módban van, beírhatja a cellába. A szerkesztési mód megadásához nyomja Enter le vagy használja az egérrel a cella szerkesztőterületén való kijelölést.

    Képernyőkép a szerkesztési módról

Parancsmód alatti billentyűparancsok

Művelet Synapse-jegyzetfüzet billentyűparancsai
Futtassa az aktuális cellát, és válassza az alábbiakat Shift+Enter
Futtassa az aktuális cellát, és szúrja be az alábbiakat Alt+Enter
Aktuális cella futtatása Ctrl+Enter
A fenti cella kijelölése Fel
Az alábbi cella kijelölése Le
Előző cella kijelölése K
Következő cella kijelölése J
Cella beszúrása fent A
Cella beszúrása lent h
Kijelölt cellák törlése Shift+D
Váltás szerkesztési módra Enter

Billentyűparancsok szerkesztési módban

Az alábbi billentyűparancsokkal könnyebben navigálhat és futtathat kódot Synapse-jegyzetfüzetekben szerkesztési módban.

Művelet Synapse-jegyzetfüzet billentyűparancsai
Kurzor mozgatása felfelé Fel
Kurzor mozgatása lefelé Le
Visszavonás Ctrl + Z
Ismétlés Ctrl + Y
Megjegyzés/megjegyzés feloldása Ctrl + /
Szó törlése előtt Ctrl + Backspace
Szó törlése utána Ctrl +Delete
Ugrás a cella elejére Ctrl + Home
Ugrás a cella végére Ctrl +End
Egy szó balra Ctrl + Balra
Egy szó jobbra Ctrl + Jobbra
Az összes kijelölése Ctrl +A
Behúzás Ctrl +]
Dedent Ctrl + [
Váltás parancs módra Esc

Következő lépések