Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
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.
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.nbResPathniitä viitatussa muistikirjassa varmistaaksesi, että se osoittaa samaan kansioon kuin interaktiivinen suoritus.
Viiteajo useita muistikirjoja rinnakkain
-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:
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:
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
runMultiplekutsuihin 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.
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.
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.
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.