Databricks Asset Bundles-kódtár-függőségek
Ez a cikk a Databricks Asset Bundles-kódtár-függőségek deklarálásának szintaxisát ismerteti. A csomagok lehetővé teszik az Azure Databricks-munkafolyamatok programozott kezelését. Lásd: Mik azok a Databricks-eszközcsomagok?.
A jegyzetfüzeteken kívül az Azure Databricks-feladatok valószínűleg kódtáraktól függenek, hogy a várt módon működjenek. A helyi fejlesztéshez szükséges Databricks-eszközcsomagok függőségei a requirements*.txt
csomagprojekt gyökerében található fájlban vannak megadva, de a feladat-feladattár függőségei a csomagkonfigurációs fájlokban vannak deklarálva, és gyakran a feladat feladattípus-specifikációjának részeként szükségesek.
A csomagok az alábbi kódtár-függőségekhez nyújtanak támogatást az Azure Databricks-feladatokhoz:
- Python-kerekes fájl
- JAR-fájl (Java vagy Scala)
- PyPI-, Maven- vagy CRAN-csomagok
Feljegyzés
A tárak támogatottsága a feladat fürtkonfigurációjától és az erőforrástár forrásától függ. A teljes könyvtártámogatási információkért tekintse meg a Tárak című témakört.
Python-kerekes fájl
Ha Python-kerekes fájlt szeretne hozzáadni egy feladatfeladathoz, libraries
adja meg az whl
egyes telepítendő tárak leképezését. Telepíthet egy kerékfájlt munkaterületfájlokból, Unity Catalog-kötetekből, felhőobjektum-tárolóból vagy helyi fájlelérési útvonalból.
Fontos
A kódtárak a Databricks Runtime 14.3 LTS és az alábbi Databricks Runtime használatakor telepíthetők a DBFS-ből. A munkaterület bármely felhasználója módosíthatja azonban a DBFS-ben tárolt kódtárfájlokat. Az Azure Databricks-munkaterületen lévő kódtárak biztonságának javítása érdekében a tárfájlok dbFS-gyökérben való tárolása alapértelmezés szerint elavult és le van tiltva a Databricks Runtime 15.1-ben és újabb verzióiban. Lásd: A tárak tárolása a DBFS-gyökérben alapértelmezés szerint elavult és le van tiltva.
Ehelyett a Databricks azt javasolja , hogy töltse fel az összes tárat, beleértve a Python-kódtárakat, a JAR-fájlokat és a Spark-összekötőket, a munkaterületi fájlokba vagy a Unity Catalog-kötetekbe, vagy tárcsomag-adattárak használatával. Ha a számítási feladat nem támogatja ezeket a mintákat, a felhőobjektum-tárolóban tárolt kódtárakat is használhatja.
Az alábbi példa bemutatja, hogyan telepíthet három Python-kerekes fájlt egy feladatfeladathoz.
- Az első Python-kerékfájlt korábban feltöltötték az Azure Databricks-munkaterületre, vagy hozzáadták elemként
include
async
leképezésben, és ugyanabban a helyi mappában található, mint a csomagkonfigurációs fájl. - A második Python-kerékfájl az Azure Databricks-munkaterület megadott munkaterületfájl-helyén található.
- A harmadik Python-kerékfájlt korábban feltöltötték az Azure Databricks-munkaterületen elnevezett
my-volume
kötetre.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- whl: ./my-wheel-0.1.0.whl
- whl: /Workspace/Shared/Libraries/my-wheel-0.0.1-py3-none-any.whl
- whl: /Volumes/main/default/my-volume/my-wheel-0.1.0.whl
JAR-fájl
Ha JAR-fájlt szeretne hozzáadni egy feladatfeladathoz, libraries
adja meg az jar
egyes telepíteni kívánt tárak leképezését. JAR-t telepíthet munkaterületfájlokból, Unity Catalog-kötetekből, felhőobjektum-tárolóból vagy helyi fájlelérési útból.
Fontos
A kódtárak a Databricks Runtime 14.3 LTS és az alábbi Databricks Runtime használatakor telepíthetők a DBFS-ből. A munkaterület bármely felhasználója módosíthatja azonban a DBFS-ben tárolt kódtárfájlokat. Az Azure Databricks-munkaterületen lévő kódtárak biztonságának javítása érdekében a tárfájlok dbFS-gyökérben való tárolása alapértelmezés szerint elavult és le van tiltva a Databricks Runtime 15.1-ben és újabb verzióiban. Lásd: A tárak tárolása a DBFS-gyökérben alapértelmezés szerint elavult és le van tiltva.
Ehelyett a Databricks azt javasolja , hogy töltse fel az összes tárat, beleértve a Python-kódtárakat, a JAR-fájlokat és a Spark-összekötőket, a munkaterületi fájlokba vagy a Unity Catalog-kötetekbe, vagy tárcsomag-adattárak használatával. Ha a számítási feladat nem támogatja ezeket a mintákat, a felhőobjektum-tárolóban tárolt kódtárakat is használhatja.
Az alábbi példa bemutatja, hogyan telepítheti a korábban az Azure Databricks-munkaterületen elnevezett my-volume
kötetre feltöltött JAR-fájlt.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar
PyPI-csomag
Ha PyPI-csomagot szeretne hozzáadni egy feladatfeladat-definícióhoz, libraries
adja meg pypi
az egyes telepíteni kívánt PyPI-csomagok leképezését. Minden leképezéshez adja meg a következőket:
- Ehhez
package
adja meg a telepíteni kívánt PyPI-csomag nevét. A választható pontos verziós specifikáció is támogatott. - Ha szükséges, adja meg azt az adattárat,
repo
ahol a PyPI-csomag megtalálható. Ha nincs megadva, a rendszer az alapértelmezettpip
indexet használja (https://pypi.org/simple/).
Az alábbi példa két PyPI-csomag telepítését mutatja be.
- Az első PyPI-csomag a megadott csomagverziót és az alapértelmezett
pip
indexet használja. - A második PyPI-csomag a megadott csomagverziót és a explicit módon megadott
pip
indexet használja.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- pypi:
package: wheel==0.41.2
- pypi:
package: numpy==1.25.2
repo: https://pypi.org/simple/
Maven-csomag
Ha Maven-csomagot szeretne hozzáadni egy feladat-feladatdefinícióhoz, libraries
adja meg maven
a telepíteni kívánt Maven-csomagok leképezését. Minden leképezéshez adja meg a következőket:
- Ehhez
coordinates
adja meg a csomag Gradle-stílusú Maven-koordinátáit. - Ha szükséges,
repo
adja meg a Maven-adattárat a Maven-csomag telepítéséhez. Ha nincs megadva, a Rendszer mind a Maven Central-adattárban, mind a Spark Packages-adattárban keres. - Opcionálisan
exclusions
megadhatja a kifejezetten kizárandó függőségeket. Lásd: Maven-függőségi kizárások.
Az alábbi példa két Maven-csomag telepítését mutatja be.
- Az első Maven-csomag a megadott csomagkoordinátákat használja, és mind a Maven Központi Adattárban, mind a Spark Packages-adattárban megkeresi ezt a csomagot.
- A második Maven-csomag a megadott csomagkoordinátákat használja, a csomagot csak a Maven központi adattárában keresi, és nem tartalmazza a csomag egyik függőségét sem, amely megfelel a megadott mintának.
resources:
jobs:
my_job:
# ...
tasks:
- task_key: my_task
# ...
libraries:
- maven:
coordinates: com.databricks:databricks-sdk-java:0.8.1
- maven:
coordinates: com.databricks:databricks-dbutils-scala_2.13:0.1.4
repo: https://mvnrepository.com/
exclusions:
- org.scala-lang:scala-library:2.13.0-RC*