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


Munkamenet-hatókörű csomagok kezelése

A készletszintű csomagok mellett munkamenet-hatókörű kódtárakat is megadhat a jegyzetfüzet-munkamenet elején. A munkamenet-hatókörű kódtárak lehetővé teszik Python-, jar- és R-csomagok megadását és használatát egy jegyzetfüzet-munkamenetben.

Munkamenet-hatókörű kódtárak használatakor fontos szem előtt tartani a következő szempontokat:

  • Munkamenet-hatókörű kódtárak telepítésekor csak az aktuális jegyzetfüzet fér hozzá a megadott kódtárakhoz.
  • Ezek a kódtárak nincsenek hatással más munkamenetekre vagy feladatokra, amelyek ugyanazt a Spark-készletet használják.
  • Ezek a kódtárak az alap futtatókörnyezeti és készletszintű kódtárakra települnek, és a legmagasabb prioritást élvezik.
  • A munkamenet-hatókörű kódtárak nem maradnak meg a munkamenetek között.

Munkamenet-hatókörű Python-csomagok

Munkamenet-hatókörű Python-csomagok kezelése environment.yml fájlon keresztül

Munkamenet-hatókörű Python-csomagok megadása:

  1. Lépjen a kijelölt Spark-készletre, és győződjön meg arról, hogy engedélyezte a munkamenetszintű kódtárakat. Ezt a beállítást azApache Spark-készletcsomagok>kezelése> lapra lépve engedélyezheti. Képernyőkép a munkamenet-csomagok engedélyezéséről.
  2. A beállítás alkalmazása után megnyithat egy jegyzetfüzetet, és kiválaszthatja aMunkamenet-csomagok> konfigurálása lehetőséget. Képernyőkép a munkamenet-csomagok megadásáról.Képernyőkép az Yml-fájl feltöltéséről.
  3. Itt feltölthet egy Conda environment.yml fájlt a csomagok munkameneten belüli telepítéséhez vagy frissítéséhez. A megadott kódtárak a munkamenet kezdetekor jelennek meg. Ezek a kódtárak a munkamenet befejezése után már nem lesznek elérhetők.

Munkamenet-hatókörű Python-csomagok kezelése %pip és %conda parancsokkal

A népszerű %pip és %conda parancsokkal további külső kódtárakat vagy egyéni kódtárakat telepíthet az Apache Spark-jegyzetfüzet munkamenete során. Ebben a szakaszban %pip parancsokkal mutatunk be számos gyakori forgatókönyvet.

Megjegyzés

  • Ha új kódtárakat szeretne telepíteni, javasoljuk, hogy helyezze a %pip és a %conda parancsot a jegyzetfüzet első cellájába. A Python-értelmező újraindul a munkamenetszintű kódtár kezelése után, hogy a módosítások hatályba lépjenek.
  • A Python-kódtárak kezelésének parancsai le lesznek tiltva a folyamatfeladatok futtatásakor. Ha csomagokat szeretne telepíteni egy folyamaton belül, a készlet szintjén kell használnia az erőforrástár-felügyeleti képességeket.
  • A munkamenet-hatókörű Python-kódtárak automatikusan települnek az illesztőprogram és a munkavégző csomópontok között is.
  • A következő %conda parancsok nem támogatottak: létrehozás, tisztítás, összehasonlítás, aktiválás, inaktiválás, futtatás, csomag.
  • A parancsok teljes listájáért tekintse meg a %pip parancsokat és a %conda parancsokat .

Harmadik féltől származó csomag telepítése

A Python-kódtárakat egyszerűen telepítheti a PyPI-ből.

# Install vega_datasets
%pip install altair vega_datasets

A telepítési eredmény ellenőrzéséhez futtassa a következő kódot a vega_datasets

# Create a scatter plot
# Plot Miles per gallon against the horsepower across different region

import altair as alt
from vega_datasets import data

cars = data.cars()
alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
).interactive()

Kerékcsomag telepítése tárfiókból

A tár tárból való telepítéséhez az alábbi parancsok futtatásával csatlakoztatnia kell a tárfiókhoz.

from notebookutils import mssparkutils  
 
mssparkutils.fs.mount(  
    "abfss://<<file system>>@<<storage account>.dfs.core.windows.net",  
    "/<<path to wheel file>>",  
    {"linkedService":"<<storage name>>"}  
) 

Ezután a %pip install paranccsal telepítheti a szükséges kerékcsomagot.

%pip install /<<path to wheel file>>/<<wheel package name>>.whl

A beépített kódtár egy másik verziójának telepítése

Az alábbi paranccsal megtekintheti az egyes csomagok beépített verzióját. Példaként a pandast használjuk

%pip show pandas

Az eredmény a következő napló:

Name: pandas
Version: **1.2.3**
Summary: Powerful data structures for data analysis, time series, and statistics
Home-page: https://pandas.pydata.org
... ...

Az alábbi paranccsal válthat a pandas másik verziójára, például az 1.2.4-es verzióra

%pip install pandas==1.2.4

Munkamenet-hatókörű kódtár eltávolítása

Ha el szeretne távolítani egy csomagot, amely erre a jegyzetfüzet-munkamenetre van telepítve, tekintse meg az alábbi parancsokat. A beépített csomagok azonban nem távolíthatók el.

%pip uninstall altair vega_datasets --yes

Kódtárak telepítése requirement.txt fájlból a %pip paranccsal

%pip install -r  /<<path to requirement file>>/requirements.txt

Munkamenet-hatókörű Java- vagy Scala-csomagok

Munkamenet-hatókörű Java- vagy Scala-csomagok megadásához használja a %%configure következő lehetőséget:

%%configure -f
{
    "conf": {
        "spark.jars": "abfss://<<file system>>@<<storage account>.dfs.core.windows.net/<<path to JAR file>>",
    }
}

Megjegyzés

  • Javasoljuk, hogy futtassa a %%configure parancsot a jegyzetfüzet elején. Az érvényes paraméterek teljes listájáért tekintse meg ezt a dokumentumot .

Munkamenet-hatókörű R-csomagok (előzetes verzió)

Azure Synapse Analytics-készletek számos népszerű R-kódtárat tartalmaznak. Az Apache Spark-jegyzetfüzet munkamenete során további külső kódtárakat is telepíthet.

Megjegyzés

  • Az R-kódtárak kezelésének parancsai le lesznek tiltva a folyamatfeladatok futtatásakor. Ha csomagokat szeretne telepíteni egy folyamaton belül, a készlet szintjén kell használnia az erőforrástár-felügyeleti képességeket.
  • A munkamenet-hatókörű R-kódtárak automatikusan települnek az illesztőprogram és a munkavégző csomópontok között is.

Csomag telepítése

Az R-kódtárakat egyszerűen telepítheti a CRAN-ból.

# Install a package from CRAN
install.packages(c("nycflights13", "Lahman"))

A CRAN-pillanatképeket adattárként is használhatja, hogy minden alkalommal ugyanazt a csomagverziót töltse le.

install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

Csomagok telepítése devtools használatával

A devtools kódtár leegyszerűsíti a csomagfejlesztést a gyakori feladatok felgyorsítása érdekében. Ez a kódtár az alapértelmezett Azure Synapse Analytics-futtatókörnyezetben van telepítve.

A használatával devtools megadhatja a telepítendő kódtár egy adott verzióját. Ezek a kódtárak a fürt összes csomópontjára települnek.

# Install a specific version. 
install_version("caesar", version = "1.0.0") 

Hasonlóképpen, közvetlenül a GitHubról is telepíthet kódtárat.

# Install a GitHub library. 

install_github("jtilly/matchingR") 

Jelenleg az alábbi devtools függvények támogatottak az Azure Synapse Analyticsben:

Parancs Leírás
install_github() R-csomag telepítése a GitHubról
install_gitlab() R-csomag telepítése a GitLabből
install_bitbucket() R-csomag telepítése a BitBucketből
install_url() R-csomag telepítése tetszőleges URL-címről
install_git() Telepítés tetszőleges Git-adattárból
install_local() Telepítés helyi fájlból lemezre
install_version() Telepítés egy adott verzióból a CRAN-on

Telepített kódtárak megtekintése

A munkamenetben telepített összes kódtárat a library paranccsal kérdezheti le.

library()

A függvény használatával packageVersion ellenőrizheti a kódtár verzióját:

packageVersion("caesar")

R-csomag eltávolítása munkamenetből

A függvénnyel eltávolíthat detach egy kódtárat a névtérből. Ezek a kódtárak lemezen maradnak, amíg újra be nem töltődnek.

# detach a library

detach("package: caesar")

Ha el szeretne távolítani egy munkamenet-hatókörű csomagot egy jegyzetfüzetből, használja a remove.packages() parancsot. Ez a kódtár-módosítás nincs hatással az ugyanazon fürt más munkameneteire. A felhasználók nem távolíthatják el vagy távolíthatják el az alapértelmezett Azure Synapse Analytics-futtatókörnyezet beépített kódtárait.

remove.packages("caesar")

Megjegyzés

Nem távolíthat el olyan alapvető csomagokat, mint a SparkR, a SparklyR vagy az R.

Munkamenet-hatókörű R-kódtárak és SparkR

A jegyzetfüzet-hatókörű kódtárak a SparkR-feldolgozókban érhetők el.

install.packages("stringr")
library(SparkR)

str_length_function <- function(x) {
  library(stringr)
  str_length(x)
}

docs <- c("Wow, I really like the new light sabers!",
               "That book was excellent.",
               "R is a fantastic language.",
               "The service in this restaurant was miserable.",
               "This is neither positive or negative.")

spark.lapply(docs, str_length_function)

Munkamenet-hatókörű R-kódtárak és SparklyR

A SparklyR spark_apply() használatával bármilyen R-csomagot használhat a Sparkban. Alapértelmezés szerint a sparklyr::spark_apply() fájlban a csomagok argumentuma FALSE (HAMIS) értékre van állítva. Ezzel átmásolja az aktuális libPaths-kódtárakat a feldolgozóknak, így importálhatja és használhatja őket a feldolgozókon. A sparklyr::spark_apply() kóddal például a következő parancs futtatásával hozhat létre egy caesar-titkosított üzenetet:

install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

spark_version <- "3.2"
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)

apply_cases <- function(x) {
  library(caesar)
  caesar("hello world")
}
sdf_len(sc, 5) %>%
  spark_apply(apply_cases, packages=FALSE)

Következő lépések