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


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 a sync 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, librariesadja 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 packageadja 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, repoahol a PyPI-csomag megtalálható. Ha nincs megadva, a rendszer az alapértelmezett pip 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, librariesadja 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 coordinatesadja meg a csomag Gradle-stílusú Maven-koordinátáit.
  • Ha szükséges, repoadja 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 exclusionsmegadhatja 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*