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:
- 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.
- A beállítás alkalmazása után megnyithat egy jegyzetfüzetet, és kiválaszthatja aMunkamenet-csomagok> konfigurálása lehetőséget.
- 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
- Az alapértelmezett kódtárak megtekintése: Apache Spark-verzió támogatása
- A csomagok kezelése Synapse Studio portálon kívül: Csomagok kezelése Az-parancsokkal és REST API-kkal