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.
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:
- Cella hozzáadása
- Elsődleges nyelv beállítása
- Több nyelv használata
- Ideiglenes táblák használata nyelvek közötti adatokra való hivatkozáshoz
- IDE-stílusú IntelliSense
- Kódrészletek
- Szövegcella formázása eszköztárgombokkal
- Cellaművelet visszavonása/ismételt végrehajtása
- Kódcellák megjegyzése
- Cella áthelyezése
- Cella törlése
- Cellabemenet összecsukása
- Cellakimenet összecsukása
- Jegyzetfüzet körvonala
Feljegyzés
A jegyzetfüzetekben automatikusan létrejön egy SparkSession, amelyet egy úgynevezett spark
vá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.
Mutasson a két cella közötti térközre, és válassza a Kód vagy a Markdown lehetőséget.
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.
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.
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.
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" )
A 2. cellában a Spark SQL használatával kérdezheti le az adatokat.
%%sql SELECT * FROM mydataframetable
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.
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.
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.
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
A Megjegyzések ablaktábla megnyitásához válassza a Jegyzetfüzet eszköztár Megjegyzések gombját.
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.
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.
Cella áthelyezése
Kattintson a cella bal oldalára, és húzza a kívánt helyre.
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.
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.
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.
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
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.
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.
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.
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.
Az összes futó cella megszakítása
A Mégse gombra kattintva megszakíthatja az üzenetsorban várakozó futó cellákat vagy cellákat.
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.
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.
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.
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.
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:
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.
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
Először importálnia
ipywidgets
kell a modult a Jupyter Widget keretrendszer használatához.import ipywidgets as widgets
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
Futtassa a cellát, és a widget a kimeneti területen jelenik meg.
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é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
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
WidgetA 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
WidgetMég nem támogatott. 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 (azazdisplay(a, b)
), amely eltér az IPythondisplay
függvénytől.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.
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.
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.
A jegyzetfüzet tulajdonságaiban beállíthatja, hogy a cellakimenet szerepeljen-e a mentéskor.
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ő:
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.
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.
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.
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.
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.
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.
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.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.
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
- Tekintse meg a Synapse-mintajegyzetfüzeteket
- Rövid útmutató: Apache Spark-készlet létrehozása az Azure Synapse Analyticsben webes eszközökkel
- Mi az az Apache Spark az Azure Synapse Analyticsben?
- Az Apache Sparkhoz készült .NET használata az Azure Stream Analyticsszel
- Az Apache Sparkhoz készült .NET-dokumentáció
- Azure Synapse Analytics