Megosztás a következőn keresztül:


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

Az Azure Synapse Analytics-jegyzetfüzetek (Synapse-jegyzetfüzetek) 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 biztonságossá tételének elősegítése a beépített vállalati biztonsági funkciókkal.
  • Adatok elemzése nyers formátumok (például CSV, TXT és JSON), feldolgozott fájlformátumok (például Parquet, Delta Lake és ORC) é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

Létrehozhat egy új jegyzetfüzetet, vagy importálhat egy meglévő jegyzetfüzetet egy Synapse-munkaterületre az Object Explorerből. Válassza a Fejlesztés menüt. Jelölje ki a gombot, és válassza a + Jegyzetfüzet lehetőséget, vagy kattintson a jobb gombbal a Jegyzetfüzetek elemre, majd válassza az Új jegyzetfüzet vagy Importálás lehetőséget. A Synapse-jegyzetfüzetek felismerik a standard Jupyter Notebook IPYNB-fájlokat.

Jegyzetfüzet létrehozására vagy importálására szolgáló beállítások képernyőképe.

Jegyzetfüzetek fejlesztése

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

A következő szakaszok a jegyzetfüzetek fejlesztésének műveleteit ismertetik:

Feljegyzés

A jegyzetfüzetekben a rendszer automatikusan létrehoz egy példányt SparkSession , és egy úgynevezett sparkváltozóban tárolja. Van egy változó is a híváshoz SparkContext sc. A felhasználók közvetlenül hozzáférhetnek ezekhez a változókhoz, de 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.

    Képernyőkép a Synapse-jegyzetfüzet Kód és Markdown gombjairól.

  • Parancs módban használjon billentyűparancsokat. Az A billentyűvel beszúrhat egy cellát az aktuális cella fölé. A B billentyűvel beszúrhat 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 újonnan hozzáadott cellák elsődleges nyelvét a felső parancssáv Nyelv legördülő listájából állíthatja be.

Képernyőkép a Synapse-jegyzetfüzet nyelvének kiválasztására szolgáló legördülő listáró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 futtatása a következőn: SparkContext.
%%spark Scala Scala-lekérdezés futtatása a következőn:SparkContext
%%sql Spark SQL Spark SQL-lekérdezés futtatása a következőn:SparkContext
%%csharp .NET a Spark C-hez# Futtasson egy .NET-et Spark C#-lekérdezéshez SparkContext.
%%sparkr R R-lekérdezés futtatása a következőn: SparkContext.

Az alábbi képen egy példa látható arra, hogyan írhat PySpark-lekérdezést a %%pyspark magic paranccsal vagy egy Spark SQL-lekérdezéssel a %%sql Spark (Scala) jegyzetfüzetben található magic paranccsal. A jegyzetfüzet elsődleges nyelve PySparkra van állítva.

Képernyőkép a Spark magic parancsokról a Synapse-jegyzetfüzetben.

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

A Synapse-jegyzetfüzetekben nem hivatkozhat közvetlenül az adatokra vagy változókra a különböző nyelvek között. A Sparkban különböző nyelveken hivatkozhat egy ideiglenes táblára. Íme egy példa arra, hogyan olvashatja be a Scala DataFrame-et a PySparkban és a Spark SQL-ben egy Spark ideiglenes tábla használatával 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 használata

A Synapse-jegyzetfüzetek integrálva vannak a Monaco-szerkesztővel, hogy IDE-stílusú IntelliSense-t hozzanak a cellaszerkesztőbe. A szintaxiskiemelés, a hibajelölő és az automatikus kódkiegészítés funkciói segítenek a kódírásban é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 A 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 Nem Igen
Spark SQL Igen Igen Igen Igen Igen Nem Nem Nem
.NET sparkhoz (C#) Igen Igen Igen Igen Igen Igen Igen Igen

Aktív Spark-munkamenetre van szükség a változókódok befejezésének, a rendszerfüggvény-kódkiegészítésnek és a .NET for Spark (C#) felhasználói függvénykód-kiegészítésének előnyeinek kihasználásához.

Kódrészletek használata

A Synapse-jegyzetfüzetek olyan kódrészleteket biztosítanak, amelyek megkönnyítik a gyakran használt kódminták megadását. Ezek a minták magukban foglalják a Spark-munkamenet konfigurálását, az adatok Spark DataFrame-ként való olvasását, valamint diagramok rajzolását a Matplotlib használatával.

A kódrészletek az IDE-stílusú IntelliSense billentyűparancsaiban jelennek meg, más javaslatokkal vegyesen. A kódrészletek tartalma igazodik a kódcella nyelvéhez. Az elérhető kódtöredékeket a kódrészlet vagy a kódrészlet címében megjelenő kulcsszavak megadásával tekintheti meg a kódcella-szerkesztőben. Az olvasás beírásával például megtekintheti a különböző adatforrásokból származó adatok beolvasásához szükséges kódrészletek listáját.

Synapse-jegyzetfüzet kódrészleteinek animált GIF-jét.

Szövegcellák formázása eszköztárgombokkal

A szövegcella eszköztárának formázási gombjaival elvégezheti a gyakori Markdown-műveleteket. Ezek a műveletek közé tartozik a szöveg félkövérsé tétele, a szöveg dőlt betűssé tétele, a bekezdések és címsorok létrehozása egy legördülő menüben, kód beszúrása, rendezetlen lista beszúrása, rendezett lista beszúrása, hivatkozás beszúrása és kép beszúrása URL-címből.

Képernyőkép a Synapse-jegyzetfüzet szövegcellájának eszköztáráról.

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

A legutóbbi cellaműveletek visszavonásához válassza a Visszavonás vagy az Újra gombot , vagy válassza a Z billentyűt vagy a Shift+Z billentyűkombinációt. Most már legfeljebb 10 korábbi cellaműveletet vonhat vissza vagy hajthat végre újra.

Képernyőkép a Synapse-jegyzetfüzet visszavonása és ismételt elvégzése gombjairól.

A támogatott cellaműveletek a következők:

  • Cella beszúrása vagy törlése. A törlési műveleteket a Visszavonás gombra kattintva vonhatja vissza. Ez a művelet a cella mellett a szöveges tartalmat is megőrzi.
  • Cellák átrendezésében.
  • Paramétercella be- vagy kikapcsolása.
  • Konvertálás kódcella és Markdown-cella között.

Feljegyzés

Nem vonhatja vissza a szövegműveleteket és a megjegyzési műveleteket egy cellában.

Megjegyzés kódcellához

  1. A Jegyzetfüzet eszköztár Megjegyzések gombjára kattintva nyissa meg a Megjegyzések panelt.

    Képernyőkép a Synapse-jegyzetfüzet Megjegyzések gombjáról és a Megjegyzések panelről.

  2. Jelöljön ki kódot a kódcellában, válassza az Új lehetőséget a Megjegyzések panelen, adjon hozzá megjegyzéseket, majd válassza a Megjegyzés közzététele gombot.

    Képernyőkép a Synapse-jegyzetfüzetben megjegyzés megadására szolgáló mezőről.

  3. Szükség esetén a Megjegyzés szerkesztése, a Szál feloldása és a Szál törlése művelet végrehajtásához válassza a Megjegyzés melletti További három pont (...) lehetőséget.

    Képernyőkép egy Synapse-jegyzetfüzet kódcellájának további parancsairól.

Cella áthelyezése

Egy cella áthelyezéséhez jelölje ki a cella bal oldalát, és húzza a cellát a kívánt helyre.

Animált GIF a Synapse-jegyzetfüzetben lévő cellák áthelyezéséről.

Cella másolása

Cella másolásához először hozzon létre egy új cellát, majd jelölje ki az összes szöveget az eredeti cellában, másolja a szöveget, és illessze be a szöveget az új cellába. Ha a cella szerkesztési módban van, a hagyományos billentyűparancsok az összes szöveg kijelöléséhez csak a cellára korlátozódnak.

Tipp.

A Synapse-jegyzetfüzetek a gyakran használt kódminták részleteit is biztosítják.

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 válassza a Shift+D billentyűkombinációt.

Képernyőkép a Synapse-jegyzetfüzet celláinak törlésére szolgáló gombról.

Cellabemenet összecsukása

Az aktuális cella bemenetének összecsukásához válassza a További parancsok három pontot (...) a cella eszköztárán, majd válassza a Bemenet elrejtése lehetőséget. A bemenet kibontásához válassza a Bemenet megjelenítése a cella összecsukása közben lehetőséget.

Egy Synapse-jegyzetfüzet összecsukó és kibontó cellabemenetének animált GIF-fájlja.

Cellakimenet összecsukása

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

Synapse-jegyzetfüzet összecsukó és kibontó cellakimenetének animált GIF-fájlja.

Jegyzetfüzet körvonalának használata

A vázlat (tartalomjegyzék) egy oldalsávablakban lévő Markdown-cella első Markdown-fejlécét mutatja be a gyors navigációhoz. A körvonal oldalsávja méretezhető és összecsukható, hogy a lehető legjobban illeszkedjen a képernyőhöz. Az oldalsáv megnyitásához vagy elrejtéséhez kattintson a Jegyzetfüzet parancssávJának Vázlat gombjára.

Képernyőkép a Synapse-jegyzetfüzet körvonal oldalsávjának képéről.

Jegyzetfüzet futtatása

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

Feljegyzés

A jegyzetfüzetek törlése nem törli automatikusan az éppen futó feladatokat. Ha le kell mondania egy feladatot, lépjen a Monitorközpontba , és mondja le manuálisan.

Cella futtatása

A kód többféleképpen is futtatható egy cellában:

  • Vigye az egérmutatót a futtatni kívánt cellára, majd válassza a Cella futtatása gombot, vagy válassza a Ctrl+Enter billentyűkombinációt.

    Képernyőkép egy cellának Synapse-jegyzetfüzetben való futtatására szolgáló parancsról.

  • Parancs módban használjon billentyűparancsokat. A Shift+Enter billentyűkombinációval futtassa az aktuális cellát, és jelölje ki az alatta lévő cellát. Az Alt+Enter billentyűkombinációt választva futtassa az aktuális cellát, és szúrjon be egy új cellát alá.

Az összes cella futtatása

Az aktuális jegyzetfüzet összes cellájának egymás utáni futtatásához válassza az Összes futtatása gombot.

Képernyőkép a Synapse-jegyzetfüzet összes cellájának futtatására szolgáló gombról.

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

Ha az aktuális cella fölötti összes cellát egymás után szeretné futtatni, bontsa ki az Összes futtatása gomb legördülő listáját, majd válassza a Fenti Cellák futtatása lehetőséget. Az alábbi Cellák futtatása gombra kattintva az aktuális cella alatti összes cellát egymás után futtathatja.

Képernyőkép a Synapse-jegyzetfüzet aktuális cellájának felett és alatt futó cellák parancsáról.

Az összes futó cella megszakítása

A futó cellák vagy az üzenetsorban várakozó cellák megszakításához válassza az Összes megszakítása gombot.

Képernyőkép a Synapse-jegyzetfüzet összes futó vagy várakozó cellájának megszakítására szolgáló gombról.

Jegyzetfüzet hivatkozása

Ha egy másik jegyzetfüzetre szeretne hivatkozni az aktuális jegyzetfüzet környezetében, használja a %run <notebook path> magic parancsot. A referenciajegyzetfüzetben definiált összes változó elérhető az aktuális jegyzetfüzetben.

Példa:

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

A jegyzetfüzet referenciája interaktív módban és folyamatokban is működik.

A %run magic parancs a következő korlátozásokkal rendelkezik:

  • A parancs támogatja a beágyazott hívásokat, de a rekurzív hívásokat nem.
  • A parancs csak paraméterként támogatja az abszolút elérési út vagy jegyzetfüzetnév átadását. Nem támogatja a relatív elérési utakat.
  • A parancs jelenleg csak négy paraméterértéktípust támogat: int, float, boolés string. Nem támogatja a változók cseréjét.
  • A hivatkozott jegyzetfüzeteket közzé kell tenni. A jegyzetfüzetekre való hivatkozáshoz közzé kell tennie a jegyzetfüzeteket, kivéve, ha bejelöli a nem közzétett jegyzetfüzet-referenciák engedélyezésének lehetőségét. A Synapse Studio nem ismeri fel a Git-adattár nem közzétett jegyzetfüzeteit.
  • A hivatkozott jegyzetfüzetek nem támogatják az ötnél nagyobb utasításmélységeket.

A változókezelő használata

A Synapse-jegyzetfüzetek beépített változókezelőt biztosítanak táblázat formájában, amely a PySpark -cellák aktuális Spark-munkamenetében lévő változókat sorolja fel. A táblázat oszlopokat tartalmaz a változó nevéhez, típusához, hosszához és értékéhez. További változók automatikusan megjelennek a kódcellákban definiált módon. Az egyes oszlopfejlécek kijelölése rendezi a változókat a táblában.

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

A Synapse-jegyzetfüzet változókezelőjének képernyőképe.

Feljegyzés

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

A cella állapotjelzőjének használata

Egy cellafuttatás lépésenkénti állapota jelenik meg a cella alatt, hogy látható legyen az aktuális állapota. A cellafuttatás befejeződése után megjelenik egy összegzés, amely a teljes időtartamot és a befejezési időt jeleníti meg, és a jövőben is ott marad.

Képernyőkép egy Synapse-jegyzetfüzetben futtatott cella összegzéséről.

A Spark állapotjelzőjének használata

A Synapse-jegyzetfüzetek tisztán Spark-alapúak. A kódcellák távolról futnak a kiszolgáló nélküli Apache Spark-készleten. A Spark-feladatok állapotjelzője valós idejű folyamatjelzővel segíti a feladatfuttatás állapotának megértését.

Az egyes feladatokhoz vagy fázisokhoz tartozó tevékenységek száma segít azonosítani a Spark-feladat párhuzamos szintjét. Egy adott feladat (vagy szakasz) Spark felhasználói felületét is részletesebben is részletezheti a feladat (vagy szakasz) nevére mutató hivatkozás kiválasztásával.

Képernyőkép a Spark állapotjelzőről a Synapse-jegyzetfüzetben.

Spark-munkamenet konfigurálása

A Munkamenet konfigurálása panelen, amelyet a jegyzetfüzet tetején található fogaskerék ikonra kattintva talál, megadhatja az időtúllépés időtartamát, a végrehajtók számát és a végrehajtók méretét az aktuális Spark-munkamenethez. Indítsa újra a Spark-munkamenetet a konfigurációs módosítások érvénybe lépéséhez. 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 konfigurációjának kezelését.

Képernyőkép a Synapse-jegyzetfüzet munkamenetének konfigurálására szolgáló panelről.

Magic parancs Spark-munkamenet konfigurálásához

A Spark-munkamenet beállításait a magic paranccsal %%configureis megadhatja. A beállítások érvénybe lépéséhez indítsa újra a Spark-munkamenetet.

Javasoljuk, hogy a jegyzetfüzet elején fusson %%configure . Íme egy minta. Az érvényes paraméterek teljes listájáért tekintse meg a GitHub Livy-információit.

%%configure
{
    //You can get a list of valid parameters to configure the session from https://github.com/cloudera/livy#request-body.
    "driverMemory":"28g", // Recommended values: ["28g", "56g", "112g", "224g", "400g", "472g"]
    "driverCores":4, // Recommended values: [4, 8, 16, 32, 64, 80]
    "executorMemory":"28g",
    "executorCores":4, 
    "jars":["abfs[s]://<file_system>@<account_name>.dfs.core.windows.net/<path>/myjar.jar","wasb[s]://<containername>@<accountname>.blob.core.windows.net/<path>/myjar1.jar"],
    "conf":{
    //Example of a standard Spark property. To find more available properties, go to https://spark.apache.org/docs/latest/configuration.html#application-properties.
        "spark.driver.maxResultSize":"10g",
    //Example of a customized property. You can specify the count of lines that Spark SQL returns by configuring "livy.rsc.sql.num-rows".
        "livy.rsc.sql.num-rows":"3000" 
    }
}

Íme néhány szempont a %%configure magic parancshoz:

  • Azt javasoljuk, hogy ugyanazt az értéket használja a következőhöz: executorMemory %%configure.a0> Ezt is javasoljuk, driverCores és executorCores ugyanazzal az értékkel rendelkezik.
  • Használhatja %%configure a Synapse-folyamatokban, de ha nem állítja be az első kódcellában, a folyamat futtatása sikertelen lesz, mert nem tudja újraindítani a munkamenetet.
  • A %%configure rendszer figyelmen kívül hagyja a mssparkutils.notebook.run használt parancsot, de a használt %run <notebook> parancs továbbra is fut.
  • A szokásos Spark-konfigurációs tulajdonságokat kell használnia a "conf" törzsben. A Spark konfigurációs tulajdonságaihoz nem támogatjuk az első szintű hivatkozásokat.
  • Egyes speciális Spark-tulajdonságok nem lépnek érvénybe a törzsben "conf" , beleértve "spark.driver.cores"a , "spark.executor.cores", "spark.driver.memory", "spark.executor.memory"és "spark.executor.instances".

Folyamat paraméteres munkamenet-konfigurációja

A paraméteres munkamenet-konfigurációval a magic parancs értékeit %%configure folyamatfuttatási (notebook-tevékenység) paraméterekre cserélheti. Kódcella előkészítésekor %%configure felülbírálhatja az alapértelmezett értékeket egy ilyen objektum használatával:

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

Az alábbi példában az és "2000"az alapértelmezett értékek 4 láthatók, amelyek szintén konfigurálhatók:

%%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 futtatja a jegyzetfüzetet, vagy ha a folyamatjegyzetfüzet-tevékenység nem ad meg egyező "activityParameterName"paramétert.

A folyamatfuttatási módban a Beállítások lapon konfigurálhatja a folyamatjegyzetfüzet-tevékenységek beállításait.

Képernyőkép a Synapse-jegyzetfüzet paraméteres munkamenet-konfigurációjáról.

Ha módosítani szeretné a munkamenet-konfigurációt, a folyamatjegyzetfüzet tevékenységparaméterének a jegyzetfüzet nevével megegyezőnek activityParameterName kell lennie. Ebben a példában egy folyamat futtatása 8 során lecseréli 4000 driverCores %%configureés lecseréli livy.rsc.sql.num-rowsa folyamatot.

Ha egy folyamat futtatása a magic parancs használata %%configure után meghiúsul, további hibainformációkat kaphat a %%configure varázslócella interaktív módban való futtatásával.

Adatok felvétele jegyzetfüzetbe

Az azure Data Lake Storage Gen 2, az Azure Blob Storage és az SQL-készletek adatait az alábbi kódmintákban látható módon töltheti be.

CSV-fájl olvasása az Azure Data Lake Storage 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-fájl 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 Azure Blob Storage remotely

wasb_path = 'wasbs://%s@%s.blob.core.windows.net/%s' % (blob_container_name, blob_account_name, blob_relative_path)

spark.conf.set('fs.azure.sas.%s.%s.blob.core.windows.net' % (blob_container_name, blob_account_name), blob_sas_token)
print('Remote blob path: ' + wasb_path)

df = spark.read.option("header", "true") \
            .option("delimiter","|") \
            .schema(schema) \
            .csv(wasbs_path)

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 automatikusan létrehozott adatelszívóval rendelkező új jegyzetfüzet megtekintéséhez.

Képernyőkép egy új Spark-tábla megnyitásáról az Azure Synapse Analytics fájladatainak eléréséhez.

IPython-vezérlők használata

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

Az IPython-vezérlők használatának lépései

  1. Importálja a modult ipywidgets a Jupyter Widgets-keretrendszer használatához:

    import ipywidgets as widgets
    
  2. A felső szintű display függvény használatával megjeleníthet egy widgetet, vagy a kódcella utolsó sorában hagyhat egy típuskifejezést widget :

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

    Képernyőkép egy IPython widget csúszkáról a Synapse-jegyzetfüzetben.

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 egy Synapse-jegyzetfüzet több IPython widget csúszkáiról.

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

Widget típusa Vezérlők
Numerikus IntSlider, FloatSlider, FloatLogSlider, IntRangeSlider, FloatRangeSliderIntProgress, FloatProgress, BoundedIntText, BoundedFloatText, , IntTextFloatText
Logikai ToggleButton, , CheckboxValid
Kiválasztás Dropdown, RadioButtons, Select, SelectionSliderSelectionRangeSlider, ToggleButtonsSelectMultiple
Sztring Text, Text area, Combobox, PasswordLabel, HTML, HTML Math, , ImageButton
Lejátszás (animáció) Date picker, , Color pickerController
Tároló/elrendezés Box, HBox, VBox, GridBoxAccordion, TabsStacked

Ismert korlátozások

  • Az alábbi táblázat a jelenleg nem támogatott widgeteket és kerülő megoldásokat sorolja fel:

    Funkciók Áthidaló megoldás
    Output Widget A függvényt print() használhatja a szöveg beírására stdout.
    widgets.jslink() A függvény segítségével widgets.link() összekapcsolhat két hasonló widgetet.
    FileUpload Widget Nincs elérhető.
  • Az Azure Synapse Analytics á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)). Ez a viselkedés eltér az IPython display függvénytől.

  • Ha bezár egy IPython-vezérlőt tartalmazó jegyzetfüzetet, nem tekintheti meg és nem használhatja a widgetet, amíg újra nem futtatja 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ávJának Közzététel gombját.

    Képernyőkép a Synapse-jegyzetfüzet módosításainak közzétételére szolgáló gombról.

  • 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 a Synapse-munkaterületen lévő összes jegyzetfüzet módosításainak közzétételére szolgáló gombról.

A jegyzetfüzet Tulajdonságok paneljén beállíthatja, hogy a cellakimenetet a mentéskor is tartalmazza-e.

Képernyőkép a Synapse-jegyzetfüzet tulajdonságairól, valamint a cellakimenet mentéskor való feltüntetésének jelölőnégyzetéről.

Varázsparancsok használata

A Synapse-jegyzetfüzetekben ismerős Jupyter-varázsparancsokat használhat. Tekintse át a jelenleg elérhető varázsparancsok alábbi listáját. Mondja el a gitHub használati eseteit, hogy továbbra is hozzunk létre további mágikus parancsokat az igényeinek megfelelően.

Feljegyzés

A Synapse-folyamatokban csak a következő varázsparancsok támogatottak: %%pyspark, %%spark, , %%csharp%%sql.

A sorokhoz elérhető varázsparancsok:

%lsmagic, %time, %timeit, %history%run%load

A cellákhoz elérhető varázsparancsok:

%%time, %%timeit, %%capture, %%writefile, %%sql%%pyspark, %%spark, %%csharp, , %%html%%configure

Nem közzétett jegyzetfüzet hivatkozása

A nem közzétett jegyzetfüzetekre való hivatkozás akkor hasznos, ha helyi hibakeresést szeretne végezni. Ha engedélyezi ezt a funkciót, egy jegyzetfüzet futtatása lekéri a webes gyorsítótár aktuális tartalmát. Ha olyan cellát futtat, amely tartalmaz egy referenciajegyzetfüzet-utasítást, akkor a fürtön mentett verzió helyett az aktuális jegyzetfüzet-böngészőben lévő bemutató jegyzetfüzetekre kell hivatkozni. Más jegyzetfüzetek hivatkozhatnak a jegyzetfüzet-szerkesztő módosításaira anélkül, hogy közzé kellene tennie (élő módban) vagy véglegesítenie (Git mód) a módosításokat. Ezzel a megközelítéssel megakadályozhatja a közös kódtárak szennyezését a fejlesztési vagy hibakeresési folyamat során.

A nem közzétett jegyzetfüzetekre való hivatkozás engedélyezéséhez jelölje be a megfelelő jelölőnégyzetet a Tulajdonságok panelen.

Képernyőkép a nem közzétett Synapse-jegyzetfüzetek hivatkozásának engedélyezésére szolgáló jelölőnégyzetről.

Az alábbi táblázat az eseteket hasonlítja össze. Bár a %run és az mssparkutils.notebook.run ugyanazzal a viselkedéssel rendelkezik, a tábla példaként szolgál %run .

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

Összegezve:

  • Ha letiltja a nem közzétett jegyzetfüzetekre való hivatkozást, mindig futtassa a közzétett verziót.
  • Ha engedélyezi a nem közzétett jegyzetfüzetekre való hivatkozást, a referenciafuttatás mindig a jegyzetfüzet aktuális verzióját alkalmazza, amely a jegyzetfüzet UX-jén jelenik meg.

Aktív munkamenetek kezelése

A jegyzetfüzet-munkameneteket újra felhasználhatja anélkül, hogy újakat kellene elindítania. A Synapse-jegyzetfüzetekben az aktív munkameneteket egyetlen listában kezelheti. A lista megnyitásához válassza a három pontot (...), majd a Munkamenetek kezelése lehetőséget.

Képernyőkép az aktív Synapse-jegyzetfüzet-munkamenetek listájának megnyitására szolgáló kijelölésekről.

Az Aktív munkamenetek panel megjeleníti a jegyzetfüzetből indított aktuális munkaterület összes munkamenetét. A listában a munkamenet adatai és a hozzájuk tartozó jegyzetfüzetek láthatók. A Jegyzetfüzet leválasztása, a Munkamenet leállítása és a Megtekintés a figyelési műveletekben itt érhető el. A kijelölt jegyzetfüzetet egy másik jegyzetfüzetből indított aktív munkamenethez is csatlakoztathatja. A munkamenet ezután le lesz választva az előző jegyzetfüzetről (ha nem tétlen), és az aktuálishoz van csatolva.

Képernyőkép a Synapse-munkaterület aktív munkameneteinek paneljéről.

Python-naplók használata jegyzetfüzetben

A Python-naplókat az alábbi mintakód használatával keresheti meg, és különböző naplószinteket és formátumokat állíthat 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 the log level for all loggers
logging.getLogger().setLevel(logging.INFO)

# Customize the log level for a specific logger
customizedLogger = logging.getLogger('customized')
customizedLogger.setLevel(logging.WARNING)

# Logger that uses the default global log level
defaultLogger = logging.getLogger('default')
defaultLogger.debug("default debug message")
defaultLogger.info("default info message")
defaultLogger.warning("default warning message")
defaultLogger.error("default error message")
defaultLogger.critical("default critical message")

# Logger that uses the customized log level
customizedLogger.debug("customized debug message")
customizedLogger.info("customized info message")
customizedLogger.warning("customized warning message")
customizedLogger.error("customized error message")
customizedLogger.critical("customized critical message")

Bemeneti parancsok előzményeinek megtekintése

A Synapse-jegyzetfüzetek támogatják a magic parancsot %history az aktuális munkamenet bemeneti parancselőzményeinek nyomtatásához. A %history magic parancs hasonló a szokásos Jupyter IPython parancshoz, és több nyelvi környezethez is használható egy jegyzetfüzetben.

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

Az előző kódban -n a nyomtatási végrehajtási szám szerepel. Az range érték a következő lehet:

  • N: A végrehajtott cella kódjának Nth nyomtatása.
  • M-N: Kód nyomtatása a Mth Nth végrehajtott cellába.

Ha például a bemeneti előzményeket az elsőről a másodikra szeretné nyomtatni, használja a következőt %history -n 1-2: .

Jegyzetfüzet integrálása

Jegyzetfüzet hozzáadása folyamathoz

Ha jegyzetfüzetet szeretne hozzáadni egy meglévő folyamathoz, vagy új folyamatot szeretne létrehozni, válassza a jobb felső sarokban található Hozzáadás a folyamathoz gombot.

Képernyőkép a jegyzetfüzet meglévő vagy új Synapse-folyamathoz való hozzáadásának menübeállításairól.

Paramétercella kijelölése

A jegyzetfüzet paraméterezéséhez válassza a három pontot (...) a cella eszköztárán található további parancsok eléréséhez. 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 a cella paramétercelláként való kiválasztására szolgáló menübeállításról.

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

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

Miután létrehozott egy jegyzetfüzetet paraméterekkel, futtathatja egy folyamatból Synapse-jegyzetfüzet-tevékenységgel. Miután hozzáadta a tevékenységet a folyamatvászonhoz, beállíthatja a paraméterértékeket a Beállítások lap Alapparaméterek szakaszában.

Képernyőkép az Azure Synapse Analytics paramétereinek hozzárendelési területéről.

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

Billentyűparancsok használata

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 üzemmódban van. A Synapse-jegyzetfüzetek a kódcellákhoz a következő két módot támogatják:

  • Parancs mód: Egy cella parancsmódban van, amikor egyetlen szövegkurzor sem kéri a beírást. Ha egy cella parancs módban van, szerkesztheti a jegyzetfüzet egészét, de nem írhat be egyes cellákba. Adja meg a parancsmódot az Esc billentyű kiválasztásával vagy az egérrel a cella szerkesztőterületén kívüli kijelöléshez.

    A Synapse-jegyzetfüzet parancsmódjának képernyőképe.

  • Szerkesztési mód: Ha egy cella szerkesztési módban van, a szövegkurzor arra kéri, hogy írja be a cellát. A szerkesztési mód megadásához válassza az Enter billentyűt, vagy az egérrel jelölje ki a cella szerkesztőterületét.

    Képernyőkép a Synapse-jegyzetfüzet szerkesztési módjáról.

Billentyűparancsok parancs módban

Művelet Synapse-jegyzetfüzet parancsikonja
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

Művelet Synapse-jegyzetfüzet parancsikonja
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
Összes kijelölése Ctrl+A
Behúzás Ctrl+]
Dedent Ctrl+[
Váltás parancs módra Esc