Microsoft Spark Utilities (MSSparkUtils) Fabricille

Microsoft Spark Utilities (MSSparkUtils) on sisäänrakennettu paketti, joka auttaa sinua suorittamaan yleisiä tehtäviä helposti. MSSparkUtilsin avulla voit käsitellä tiedostojärjestelmiä, noutaa ympäristömuuttujia, ketjuttaa muistikirjoja ja käsitellä salaisuuksia. MSSparkUtils-paketti on saatavilla PySpark (Python), Scala-, SparkR-muistikirjoissa ja Fabric-putkistoissa.

Muistiinpano

  • MsSparkUtils on virallisesti nimetty uudelleen NotebookUtilsiksi. Olemassa oleva koodi pysyy yhteensopivana taaksepäin eikä aiheuta rikkovia muutoksia. Suosittelemme vahvasti päivittämistä notebookutilsiin, jotta varmistetaan jatkuva tuki ja pääsy uusiin ominaisuuksiin. Mssparkutils-nimitila poistetaan käytöstä tulevaisuudessa.
  • NotebookUtils on suunniteltu toimimaan spark 3.4(Runtime v1.2) ja sitä uudemmat versiot. Kaikkia uusia ominaisuuksia ja päivityksiä tuetaan vain niin, että notebookutils-nimitila jatkuu eteenpäin.

Tiedostojärjestelmäapuohjelmat

mssparkutils.fs tarjoaa työkaluja erilaisten tiedostojärjestelmien käsittelyyn, mukaan lukien Azure Data Lake Storage Gen2 ja Azure Blob Storage. Varmista, että määrität Azure Data Lake Storage Gen2: n ja Azure Blob -säilön käyttöoikeudet asianmukaisesti.

Suorita seuraavat komennot, jotta saat yleiskatsauksen käytettävissä olevista menetelmistä:

from notebookutils import mssparkutils
mssparkutils.fs.help()

Tuloste

mssparkutils.fs provides utilities for working with various FileSystems.

Below is overview about the available methods:

cp(from: String, to: String, recurse: Boolean = false): Boolean -> Copies a file or directory, possibly across FileSystems
mv(from: String, to: String, recurse: Boolean = false): Boolean -> Moves a file or directory, possibly across FileSystems
ls(dir: String): Array -> Lists the contents of a directory
mkdirs(dir: String): Boolean -> Creates the given directory if it does not exist, also creating any necessary parent directories
put(file: String, contents: String, overwrite: Boolean = false): Boolean -> Writes the given String out to a file, encoded in UTF-8
head(file: String, maxBytes: int = 1024 * 100): String -> Returns up to the first 'maxBytes' bytes of the given file as a String encoded in UTF-8
append(file: String, content: String, createFileIfNotExists: Boolean): Boolean -> Append the content to a file
rm(dir: String, recurse: Boolean = false): Boolean -> Removes a file or directory
exists(file: String): Boolean -> Check if a file or directory exists
mount(source: String, mountPoint: String, extraConfigs: Map[String, Any]): Boolean -> Mounts the given remote storage directory at the given mount point
unmount(mountPoint: String): Boolean -> Deletes a mount point
mounts(): Array[MountPointInfo] -> Show information about what is mounted
getMountPath(mountPoint: String, scope: String = ""): String -> Gets the local path of the mount point

Use mssparkutils.fs.help("methodName") for more info about a method.

MSSparkUtils toimii tiedostojärjestelmän kanssa samalla tavalla kuin Spark-ohjelmointirajapinnat. Otetaan esimerkiksi mssparkuitls.fs.mkdirs() ja järvenrakennuksen käyttö:

Käyttö Suhteellinen polku HDFS-pääkansiosta ABFS-tiedostojärjestelmän absoluuttinen polku Paikallisen tiedostojärjestelmän absoluuttinen polku ohjainsolmussa
Nondefault Lakehouse Ei tueta mssparkutils.fs.mkdirs("abfss://< container_name>@<storage_account_name.dfs.core.windows.net/>< new_dir>") mssparkutils.fs.mkdirs("tiedosto:/<new_dir>")
Oletus lakehouse Hakemisto kohdassa "Tiedostot" tai "Taulukot": mssparkutils.fs.mkdirs("Files/<new_dir>") mssparkutils.fs.mkdirs("abfss://< container_name>@<storage_account_name.dfs.core.windows.net/>< new_dir>") mssparkutils.fs.mkdirs("tiedosto:/<new_dir>")

Luettele tiedostot

Voit luetella hakemiston sisällön mssparkutils.fs.ls('Hakemistopolkusi'). Esimerkkejä:

mssparkutils.fs.ls("Files/tmp") # works with the default lakehouse files using relative path 
mssparkutils.fs.ls("abfss://<container_name>@<storage_account_name>.dfs.core.windows.net/<path>")  # based on ABFS file system 
mssparkutils.fs.ls("file:/tmp")  # based on local file system of driver node 

Näytä tiedoston ominaisuudet

Tämä menetelmä palauttaa tiedoston ominaisuudet, kuten tiedoston nimen, tiedostopolun, tiedoston koon sekä sen, onko kyseessä hakemisto vai tiedosto.

files = mssparkutils.fs.ls('Your directory path')
for file in files:
    print(file.name, file.isDir, file.isFile, file.path, file.size)

Luo uusi hakemisto

Tämä metodi luo määritellyn hakemiston, jos sitä ei ole olemassa, ja luo tarvittavat vanhemmat hakemistot.

mssparkutils.fs.mkdirs('new directory name')  
mssparkutils.fs. mkdirs("Files/<new_dir>")  # works with the default lakehouse files using relative path 
mssparkutils.fs.ls("abfss://<container_name>@<storage_account_name>.dfs.core.windows.net/<new_dir>")  # based on ABFS file system 
mssparkutils.fs.ls("file:/<new_dir>")  # based on local file system of driver node 

Tiedoston kopiointi

Tämä menetelmä kopioi tiedoston tai hakemiston ja tukee kopiointitoimintoja tiedostojärjestelmien välillä.

mssparkutils.fs.cp('source file or directory', 'destination file or directory', True)# Set the third parameter as True to copy all files and directories recursively

Suorita kopiotiedosto

Tämä menetelmä tarjoaa nopeamman tavan kopioida tai siirtää tiedostoja, erityisesti suuria tietomääriä.

mssparkutils.fs.fastcp('source file or directory', 'destination file or directory', True)# Set the third parameter as True to copy all files and directories recursively

Esikatselutiedoston sisältö

Tämä menetelmä palauttaa määritellyn tiedoston ensimmäisiin maxBytes tavuihin asti merkkijonona, joka on koodattu UTF-8:aan.

# Set the second parameter as an integer for the maxBytes to read
mssparkutils.fs.head('file path', <maxBytes>)

Tiedoston siirtäminen

Tämä menetelmä siirtää tiedoston tai hakemiston ja tukee siirtoja tiedostojärjestelmien välillä.

mssparkutils.fs.mv('source file or directory', 'destination directory', True) # Set the last parameter as True to firstly create the parent directory if it does not exist
mssparkutils.fs.mv('source file or directory', 'destination directory', True, True) # Set the third parameter to True to firstly create the parent directory if it does not exist. Set the last parameter to True to overwrite the updates.

Kirjoita tiedosto

Tämä menetelmä kirjoittaa annetun merkkijonon tiedostoon, joka on UTF-8-koodattu.

mssparkutils.fs.put("file path", "content to write", True) # Set the last parameter as True to overwrite the file if it existed already

Sisällön liilisääminen tiedostoon

Tämä menetelmä liittää annetun merkkijonon tiedostoon, joka on UTF-8-koodattu.

mssparkutils.fs.append("file path", "content to append", True) # Set the last parameter as True to create the file if it does not exist

Muistiinpano

Kun käytät API: mssparkutils.fs.append a for silmukassa samaan tiedostoon kirjoittamiseen, suosittelemme lisäämään lauseen sleep , jonka toistuvien kirjoitusten väliin on noin 0,5–1 sekuntia. mssparkutils.fs.append API:n sisäinen flush toiminta on asynkronista, joten lyhyt viive auttaa varmistamaan datan eheyden.

Poista tiedosto tai hakemisto

Tämä menetelmä poistaa tiedoston tai hakemiston.

mssparkutils.fs.rm('file path', True) # Set the last parameter as True to remove all files and directories recursively

Hakemiston kiinnittäminen tai poistaminen käytöstä

Lisätietoja yksityiskohtaisesta käytöstä löytyy kohdasta File mount ja unmount.

Muistikirja-apuohjelmat

Käytä MSSparkUtils Notebook Utilities -apuohjelmaa muistikirjan suorittamiseen tai muistikirjasta poistumiseen arvon kanssa. Saat yleiskatsauksen käytettävissä olevista menetelmistä suorittamalla seuraavan komennon:

mssparkutils.notebook.help()

Tuotos:


exit(value: String): Raises NotebookExit Exception -> This method lets you exit a notebook with a value.
run(path: String, timeoutSeconds: int, arguments: Map): String -> This method runs a notebook and returns its exit value.

Muistiinpano

Muistikirjan apuohjelmat eivät koske Apache Spark -tehtävämäärittelyjä (SJD).

Viittaa muistikirjaan

Tämä menetelmä viittaa muistikirjaan ja palauttaa sen poistumisarvon. Voit suorittaa sisäkkäiset funktiokutsut muistikirjassa vuorovaikutteisesti tai jaksossa. Viitattava muistikirja kulkee muistikirjan Spark-altaassa, joka kutsuu tätä funktiota.

mssparkutils.notebook.run("notebook name", <timeoutSeconds>, <parameterMap>, <workspaceId>)

Esimerkkejä:

mssparkutils.notebook.run("Sample1", 90, {"input": 20 })

Fabric-muistikirja tukee myös viittaavia muistikirjoja useissa työtiloissa määrittämällä työtilan tunnuksen.

mssparkutils.notebook.run("Sample1", 90, {"input": 20 }, "fe0a6e2a-a909-4aa3-a698-0a651de790aa")

Voit avata viitesuorituksen tilannevedoslinkin solun tulostessa. Tilannevedos tallentaa koodin suoritustulokset ja mahdollistaa viitesuorituksen virheenkorjauksen helpon virheenkorjauksen.

Näyttökuva, jossa näkyy viittauksen suoritustulos.

Näyttökuva tilannevedoksesta, jossa on koodin suoritustuloksia.

Muistiinpano

  • Työtilojen välistä viitemuistikirjaa tuetaan suorituksenaikaisessa versiossa 1.2 ja sitä uudemmat.
  • Jos käytät tiedostoja Notebook-resurssien alla, käytä mssparkutils.nbResPath niitä viitatussa muistikirjassa varmistaaksesi, että se osoittaa samaan kansioon kuin interaktiivinen suoritus.

Viiteajo useita muistikirjoja rinnakkain

Tärkeä

Tämä ominaisuus on esikatselutilassa.

-menetelmän mssparkutils.notebook.runMultiple() avulla voit suorittaa useita muistikirjoja rinnakkain tai ennalta määritetyn topologisen rakenteen kanssa. API käyttää monisäikeistä toteutusta lähettääkseen, jonottaakseen ja seuratakseen lapsimuistikirjoja, jotka suoritetaan eristetyissä REPL-instansseissa (read-eval-print-loop) olemassa olevassa Spark-istunnossa. Viitatut lapsimuistikirjat jakavat istunnon laskentaresurssit.

:n avulla mssparkutils.notebook.runMultiple()voit:

  • Suorita useita muistikirjoja samanaikaisesti odottamatta jokaisen päättymistä.

  • Määritä muistikirjojen riippuvuudet ja suoritusjärjestys käyttämällä yksinkertaista JSON-muotoa.

  • Optimoi Spark-käsittelyresurssien käyttö ja pienennä Fabric-projektiesi kustannuksia.

  • Katso jokaisen muistikirjan suoritetun tietueen snapshotit ulostulosteesta ja debugaa sekä seuraa muistikirjan tehtäviä kätevästi.

  • Nouda kunkin johtajatoiminnon exit-arvo ja käytä niitä jatkotehtävissä.

Voit myös yrittää suorittaa mssparkutils.notebook.help("runMultiple") löytääksesi esimerkin ja yksityiskohtaisen käytön.

Tässä on yksinkertainen esimerkki muistikirjojen luettelon suorittamisesta rinnakkain tällä menetelmällä:


mssparkutils.notebook.runMultiple(["NotebookSimple", "NotebookSimple2"])

Päämuistikirjasta saatu suoritustulos on seuraava:

Näyttökuva viittauksesta muistikirjojen luetteloon.

Seuraava esimerkki esittää ajavia muistikirjoja, joilla on topologinen rakenne, käyttämällä mssparkutils.notebook.runMultiple(). Tämän menetelmän avulla voit helposti järjestää muistikirjat koodikokemuksen kautta.

# run multiple notebooks with parameters
DAG = {
    "activities": [
        {
            "name": "NotebookSimple", # activity name, must be unique
            "path": "NotebookSimple", # notebook path
            "timeoutPerCellInSeconds": 90, # max timeout for each cell, default to 90 seconds
            "args": {"p1": "changed value", "p2": 100}, # notebook parameters
        },
        {
            "name": "NotebookSimple2",
            "path": "NotebookSimple2",
            "timeoutPerCellInSeconds": 120,
            "args": {"p1": "changed value 2", "p2": 200}
        },
        {
            "name": "NotebookSimple2.2",
            "path": "NotebookSimple2",
            "timeoutPerCellInSeconds": 120,
            "args": {"p1": "changed value 3", "p2": 300},
            "retry": 1,
            "retryIntervalInSeconds": 10,
            "dependencies": ["NotebookSimple"] # list of activity names that this activity depends on
        }
    ],
    "timeoutInSeconds": 43200, # max timeout for the entire DAG, default to 12 hours
    "concurrency": 50 # max number of notebooks to run concurrently, defaults to 50 but ultimately constrained by the number of driver cores
}
mssparkutils.notebook.runMultiple(DAG, {"displayDAGViaGraphviz": False})

Päämuistikirjasta saatu suoritustulos on seuraava:

Näyttökuva viittauksesta parametrit sisältävään muistikirjojen luetteloon.

Muistiinpano

  • Muistikirjatoimintojen tai samanaikaisten muistikirjojen ylärajaa rajoittaa kuljettajan ytimien määrä. Esimerkiksi Medium-solmuajuri kahdeksalla ytimellä voi suorittaa jopa kahdeksan kannettavaa samanaikaisesti. Tämä rajoitus on olemassa, koska jokainen lähetetty muistikirja suoritetaan omassa REPL-instanssissaan (read-eval-print-loop) ja jokainen instanssi käyttää yhden ajuriytimen.
  • Samanaikaisuuden oletusparametrin arvo on 50 , joka tukee suurimman samanaikaisuuden automaattista skaalausta, kun käyttäjät määrittävät Spark-varantoja, joissa on suuremmat solmut, ja siten enemmän ohjainytimiä. Vaikka tämän parametrin voi asettaa korkeammaksi suurempaa ajurisolmua käyttäessä, samanaikaisten prosessien määrän lisääminen yhdellä ajurisolmulla ei yleensä skaalaudu lineaarisesti. Samanaikaisuuden lisääminen voi johtaa tehon heikkenemiseen ohjain- ja suoritettavan suoritusresurssin kiistan vuoksi. Jokainen käynnissä oleva muistikirja toimii omalla REPL-instanssilla, joka kuluttaa prosessoria ja ajurin muistia. Korkealla rinnakkaisnopeudella tämä kulutus voi lisätä ajurin epävakauden tai muistin ulkopuolisten virheiden riskiä, erityisesti pitkäkestoisissa työkuormissa.
  • Saatat kokea pidempiä suoritusaikoja jokaiselle yksittäiselle työlle repl-instanssien alustamisen ja monien muistikirjojen orkestroinnin aiheuttaman ylimääräisen kuormituksen vuoksi. Jos ongelmia ilmenee, harkitse muistikirjojen erottamista useisiin runMultiple kutsuihin tai samanaikaisuuden vähentämistä säätämällä samanaikaisuuskenttää DAG-parametrissa.
  • Kun ajat lyhytikäisiä muistikirjoja (esimerkiksi 5 sekuntia koodin suoritusaikaa), alustuksen ylikuormitus nousee hallitsevaksi. Valmisteluajan vaihtelu voi vähentää vihkojen päällekkäisyyttä ja siten johtaa alhaisempaan realisoituun rinnakkaisarvoon. Näissä tilanteissa voi olla optimaalisempaa yhdistää pienet operaatiot yhdeksi tai useammaksi muistikirjaksi.
  • Vaikka monisäikeisyyttä käytetään lähettämiseen, jonottamiseen ja valvontaan, huomaa, että kussakin muistikirjassa käynnissä oleva koodi ei ole monisäikeistä kussakin suorittajassa. Muistikirjojen välillä ei jaeta resursseja. Jokaiselle muistikirjaprosessille on varattu osa kokonaistoimeenpanijan resursseista. Tämä allokaatio voi aiheuttaa lyhyempien työpaikkojen tehottomuuteen ja pidemmät työpaikat resurssien kamppailuun.
  • Koko DAG:n oletusaikakatkaisu on 12 tuntia, ja jokaisen solun oletusaikakatkaisu lapsimuistikirjoissa on 90 sekuntia. Voit muuttaa aikakatkaisua määrittämällä aikakatkaisunInSeconds- ja timeoutPerCellInSeconds-kentät DAG-parametrissa. Kun lisäät samanaikaisuutta, saatat joutua lisäämään aikakatkaisuPerCellInSeconds , jotta mahdollinen resurssien riita ei aiheuta tarpeettomia aikakatkaisuja.

Poistu muistikirjasta

Tämä menetelmä sulkee muistikirjasta arvon. Voit suorittaa sisäkkäiset funktiokutsut muistikirjassa vuorovaikutteisesti tai jaksossa.

  • Kun kutsut muistikirjasta exit() -funktiota vuorovaikutteisesti, Fabric-muistikirja tekee poikkeuksen, ohittaa käynnissä olevien solujen suorittamisen ja pitää Spark-istunnon elossa.

  • Kun orkestroit muistikirjaa putkessa, joka kutsuu exit() -funktiota, muistikirja-aktiviteetti palaa uloskäyntiarvolla, viimeistelee putken suorittamisen ja pysäyttää Spark-istunnon. Älä sulje exit() -funktiota try/catch-toiminnon ympärille, sillä tämän NotebookExit Exceptionin täytyy levitä, jotta putki saa palautusarvon.

  • Kun kutsut exit()-funktion viitattavassa muistikirjassa, Fabric Spark pysäyttää viitatun muistikirjan jatkosuorituksen ja jatkaa seuraavien päämuistikirjan solujen suorittamista, jotka kutsuvat run()-funktiota. Esimerkki: Notebook1:ssä on kolme solua ja toisessa solussa kutsutaan exit() -funktiota. Notebook2:ssa on viisi solua ja kutsuu run(notebook1:tä) kolmannessa solussa. Kun suoritat Notebook2-komennon, Notebook1 pysähtyy toiseen soluun osuessaan exit() -funktioon. Notebook2 jatkaa neljännen solunsa ja viidennen solunsa pyörimistä.

mssparkutils.notebook.exit("value string")

Esimerkkejä:

Sample1-muistikirja , jossa on seuraavat kaksi solua:

  • Cell 1 määrittää syöteparametrin, jonka oletusarvoksi on asetettu 10.

  • Cell 2 poistuu muistikirjasta käyttäen syötettä poistumisarvona.

Näyttökuva, jossa on esimerkkimuistikirja exit-funktiosta.

Voit suorittaa Sample1-mallin toisessa muistikirjassa käyttäen oletusarvoja:

exitVal = mssparkutils.notebook.run("Sample1")
print (exitVal)

Tuotos:

Notebook executed successfully with exit value 10

Voit suorittaa Sample1-näytteen toisessa muistikirjassa ja määrittää syötearvoksi 20:

exitVal = mssparkutils.notebook.run("Sample1", 90, {"input": 20 })
print (exitVal)

Tuotos:

Notebook executed successfully with exit value 20

Tunnistetiedot-apuohjelmat

Voit käyttää MSSparkUtils Credentials Utilities -työkaluja saadaksesi pääsytunnuksia ja hallitaksesi salaisuuksia Azure Key Vaultissa.

Saat yleiskatsauksen käytettävissä olevista menetelmistä suorittamalla seuraavan komennon:

mssparkutils.credentials.help()

Tuotos:

getToken(audience, name): returns AAD token for a given audience, name (optional)
getSecret(keyvault_endpoint, secret_name): returns secret for a given Key Vault and secret name

Hanki tunnus

getTokenpalauttaa Microsoft Entra -tokenin tietylle yleisölle ja nimelle (valinnainen). Seuraavassa luettelossa näytetään käytettävissä olevat yleisöavaimet:

  • Tallennusyleisöresurssi: storage
  • Power BI -resurssi:pbi
  • Azure Key Vault Resource:keyvault
  • Synapse RTA KQL DB Resurssi: kusto

Saat tunnuksen suorittamalla seuraavan komennon:

mssparkutils.credentials.getToken('audience Key')

Hanki salaisuus käyttämällä käyttäjätunnuksia

getSecretpalauttaa Azure Key Vault -salaisuuden tietylle Azure Key Vault -päätepisteelle ja salasanan käyttäjätunnuksia käyttäen.

mssparkutils.credentials.getSecret('https://<name>.vault.azure.net/', 'secret name')

Tiedostokiinnitys ja -mittarin irrottaminen

Fabric tukee seuraavia Microsoft Spark Utilities -paketin käyttöönottoskenaarioita. Voit käyttää mount-, unmount-, getMountPath()- ja mounts()-rajapintoja yhdistääksesi etätallennusta (Azure Data Lake Storage Gen2) kaikkiin toimiviin solmuihin (ajuri- ja työntekijäsolmut). Kun tallennustilan käyttöönottopiste on paikallaan, käytä paikallista tiedoston ohjelmointirajapintaa tietojen käyttämiseen ikään kuin ne olisi tallennettu paikalliseen tiedostojärjestelmään.

How to attach an Azure Data Lake Storage Gen2 account

Seuraava esimerkki näyttää, miten Azure Data Lake Storage Gen2 liitetään. Kasvava Blob-säilö toimii samalla tavalla.

Tässä esimerkissä oletetaan, että sinulla on yksi Data Lake Storage Gen2 -tili nimeltä Storegen2, ja tilillä on yksi säilö nimeltä mycontainer , jonka haluat ottaa käyttöön /testata muistikirjasi Spark-istunnossa.

Näyttökuva, jossa näkyy, mihin säilö valitaan.

Mycontainer-nimisen kontin liittämiseksi mssparkutils tarkistaa ensin, onko sinulla lupa käyttää konttiin. Fabric tukee kolmea todennusmenetelmää trigger-mount-toimintoon: Microsoft Entra-token (oletus ja suositeltu), accountKey ja sastoken. Lisätietoja Microsoft Entra -token-todennuksesta ja nykyisestä notebookutils API:sta löytyy NotebookUtils-tiedostojen liittämisestä ja irrottamisesta Fabric-tiedostolle.

Liitä käyttämällä jaetun pääsyn allekirjoitustokenia tai tiliavainta

MSSparkUtils tukee nimenomaisesti tilin avaimen tai SAS-tunnuksen välittämistä parametrina kohteen ottamiseksi käyttöön.

Suojaussyistä suosittelemme, että tallennat tiliavaimet tai SAS-tunnukset Azure Key Vaultiin (kuten seuraavassa näyttökuvassa näkyy). Voit sitten noutaa ne käyttämällä mssparkutils.credentials.getSecret-ohjelmointirajapintaa . Lisätietoja Azure Key Vaultista on artikkelissa Tietoja Azure Key Vaultin hallitun tallennustilin avaimista.

Näyttökuva, jossa näytetään salaisten koodien tallennuspaikka Azure Key Vaultiin.

AccountKey-menetelmän mallikoodi:

from notebookutils import mssparkutils  
# get access token for keyvault resource
# you can also use full audience here like https://vault.azure.net
accountKey = mssparkutils.credentials.getSecret("<vaultURI>", "<secretName>")
mssparkutils.fs.mount(  
    "abfss://mycontainer@<accountname>.dfs.core.windows.net",  
    "/test",  
    {"accountKey":accountKey}
)

Sastoken-mallikoodi:

from notebookutils import mssparkutils  
# get access token for keyvault resource
# you can also use full audience here like https://vault.azure.net
sasToken = mssparkutils.credentials.getSecret("<vaultURI>", "<secretName>")
mssparkutils.fs.mount(  
    "abfss://mycontainer@<accountname>.dfs.core.windows.net",  
    "/test",  
    {"sasToken":sasToken}
)

Muistiinpano

Sinun on ehkä tuotava mssparkutils , jos se ei ole käytettävissä:

from notebookutils import mssparkutils

Parametrien käyttöönotto:

  • fileCacheTimeout: Blobit välimuistittavat paikallisessa välimuistikansiossa oletuksena 120 sekuntia. Tänä aikana blobfuse ei tarkista, onko tiedosto ajan tasalla. Aseta tämä parametri muuttamaan oletusaikakatkaisua. Kun useat asiakkaat muokkaavat tiedostoja samanaikaisesti, suosittelemme lyhentämään välimuistiaikaa tai jopa muuttamaan sen nollaan ja haet aina uusimmat tiedostot palvelimelta.
  • timeout: Kiinnitystoiminnon aikakatkaisu on oletuksena 120 sekuntia. Aseta tämä parametri muuttamaan oletusaikakatkaisua. Kun toimeenpanijoita on liikaa tai kun mount-aikakatkaisu loppuu, suosittelemme nostamaan arvoa.

Voit käyttää näitä parametreja seuraavasti:

mssparkutils.fs.mount(
   "abfss://mycontainer@<accountname>.dfs.core.windows.net",
   "/test",
   {"fileCacheTimeout": 120, "timeout": 120}
)

Muistiinpano

Turvallisuussyistä älä tallenna tunnuksia koodiin. Suojataksesi tunnistetietojasi salaisuus on sensuroitu muistikirjan tulosteessa. Lisätietoja on kohdassa Salaisen koodin uudelleenohjaus.

Kuinka ottaa lakehouse käyttöön

Esimerkkikoodi järvenrakennuksen asentamiseen seuraavasti /test:

from notebookutils import mssparkutils 
mssparkutils.fs.mount( 
 "abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<lakehouse_id>", 
 "/test"
)

Muistiinpano

Alueellisen päätepisteen asentamista ei tueta. Fabric tukee vain kiinnityksen yleistä päätepistettä, onelake.dfs.fabric.microsoft.com.

Tiedostoihin pääsy mount-pisteen alla mssparkutils fs API:n avulla

Mount-toiminnon päätarkoitus on päästä käsiksi etätallennustilille tallennettuun dataan paikallisen tiedostojärjestelmän API:n avulla. Voit käyttää tietoja myös käyttämällä mssparkutils fs -ohjelmointirajapintaa, jonka parametrina on määritetty polku. Tämä polkumuoto on hieman erilainen.

Oletetaan, että liitit Data Lake Storage Gen2 -kontin mycontainerin mount-API:n /test avulla. Kun käytät dataa paikallisen tiedostojärjestelmän API:n kautta, polkumuoto on tällainen:

/synfs/notebook/{sessionId}/test/{filename}

Kun haluat päästä käsiksi dataan mssparkutils fs API:n kautta, suosittelemme käyttämään getMountPath() :ta saadaksesi tarkan reitin:

path = mssparkutils.fs.getMountPath("/test")
  • Luettelohakemistot:

    mssparkutils.fs.ls(f"file://{mssparkutils.fs.getMountPath('/test')}")
    
  • Lue tiedoston sisältöä:

    mssparkutils.fs.head(f"file://{mssparkutils.fs.getMountPath('/test')}/myFile.txt")
    
  • Luo hakemisto:

    mssparkutils.fs.mkdirs(f"file://{mssparkutils.fs.getMountPath('/test')}/newdir")
    

Käyttötiedostot käyttöönottopisteen alla paikallisen polun kautta

Voit helposti lukea ja kirjoittaa tiedostot käyttöönottopisteessä käyttämällä vakiotiedostojärjestelmää. Tässä on esimerkki Pythonista:

#File read
with open(mssparkutils.fs.getMountPath('/test2') + "/myFile.txt", "r") as f:
    print(f.read())
#File write
with open(mssparkutils.fs.getMountPath('/test2') + "/myFile.txt", "w") as f:
    print(f.write("dummy data"))

Aiemmin luotujen käyttöönottopisteiden tarkistaminen

Voit tarkistaa kaikki olemassa olevat asennuspisteen tiedot mssparkutils.fs.mounts()-ohjelmointirajapinnan avulla:

mssparkutils.fs.mounts()

Miten voit poistaa kiinnikkeen vuoren yltä

Voit seuraavan koodin avulla poistaa kiinnityspisteen vuoren vuoren yltä (/testata tässä esimerkissä):

mssparkutils.fs.unmount("/test")

Tunnetut rajoitukset

  • Nykyinen kiinnitys on työtason konfiguraatio. Suosittelemme, että käytät mounts-API :ta tarkistaaksesi, onko kiinnityspiste olemassa vai ei.

  • Määrän poistamisen mekanismi ei ole automaattinen. Kun sovelluksen suorittaminen on valmis, jotta voit poistaa kiinnityskohdan ja vapauttaa levytilan, sinun on eksplisiittisesti kutsuttava koodin määrittämätöntä ohjelmointirajapintaa. Muussa tapauksessa kiinnityspiste on edelleen olemassa solmussa sovelluksen suorituksen jälkeen.

  • Azure Data Lake Storage Gen1 -tallennustilin liittäminen ei ole tuettua.

Lakehouse-apuohjelmat

Moduuli mssparkutils.lakehouse tarjoaa apuvälineitä järvenrakennusten hallintaan. Nämä apuohjelmat tekevät järvenrakennusesineiden luomisesta, hakemisesta, päivittämisestä ja poistamisesta helppoa.

Muistiinpano

Lakehouse-rajapintoja tuetaan vain Runtime-versiossa 1.2 tai uudemmissa versioissa.

Menetelmien yleiskatsaus

Seuraavat menetelmät ovat saatavilla moduulissa mssparkutils.lakehouse :

# Create a new Lakehouse artifact
create(name: String, description: String = "", workspaceId: String = ""): Artifact

# Retrieve a Lakehouse artifact
get(name: String, workspaceId: String = ""): Artifact

# Update an existing Lakehouse artifact
update(name: String, newName: String, description: String = "", workspaceId: String = ""): Artifact

# Delete a Lakehouse artifact
delete(name: String, workspaceId: String = ""): Boolean

# List all Lakehouse artifacts
list(workspaceId: String = ""): Array[Artifact]

Käyttöesimerkkejä

Näiden menetelmien tehokkaaksi käyttämiseksi tarkastele seuraavia käyttöesimerkkejä:

Järvenrakennusesineen luominen

artifact = mssparkutils.lakehouse.create("artifact_name", "Description of the artifact", "optional_workspace_id")

Järvimajan esineen noutaminen

artifact = mssparkutils.lakehouse.get("artifact_name", "optional_workspace_id")

Lakehouse-esineen päivittäminen

updated_artifact = mssparkutils.lakehouse.update("old_name", "new_name", "Updated description", "optional_workspace_id")

Järvimajan esineen poistaminen

is_deleted = mssparkutils.lakehouse.delete("artifact_name", "optional_workspace_id")

Järvimajan esineiden listaus

artifacts_list = mssparkutils.lakehouse.list("optional_workspace_id")

Lisätietoja

Yksityiskohtaisempaa tietoa kustakin menetelmästä ja sen parametreista saat käyttämällä funktiota mssparkutils.lakehouse.help("methodName") .

Käyttämällä MSSparkUtilsin Lakehouse-työkaluja voit hallita lakehouse-tuotteitasi tehokkaammin ja integroida tämän hallinnan Fabric-putkistoihisi, parantaen kokonaisvaltaista datanhallintakokemustasi.

Tutustu näihin hyödykkeisiin ja sisällytä ne Fabric-työnkulkuihisi saumattomaan lakehouse-esineiden hallintaan.

Suorituksenaikaiset apuohjelmat

Näytä istunnon kontekstitiedot

Käyttämällä mssparkutils.runtime.context, saat kontekstitiedot nykyiselle live-istunnolle, mukaan lukien muistikirjan nimen, oletusjärvirakennuksen, työtilan tiedot, onko kyseessä putkisuoritus ja muuta.

mssparkutils.runtime.context

Muistiinpano

mssparkutils.envei ole virallisesti tuettu Fabric:ssa. Käytä notebookutils.runtime.context vaihtoehtona.

Tunnetut ongelmat

Kun käytät ajonaikaista versiota, joka on uudempi kuin 1.2 ja suoritat mssparkutils.help(), ilmoitetut fabricClient-, varasto- ja työtilarajapinnat eivät tällä hetkellä ole tuettuja.