Aracılığıyla paylaş


Databricks Varlık Paketleri kitaplık bağımlılıkları

Bu makalede Databricks Varlık Paketleri kitaplık bağımlılıklarını bildirmeye yönelik söz dizimi açıklanmaktadır. Paketler, Azure Databricks iş akışlarının programlı yönetimini sağlar. Bkz . Databricks Varlık Paketleri nedir?.

Not defterlerine ek olarak, Azure Databricks işleriniz beklendiği gibi çalışabilmesi için büyük olasılıkla kitaplıklara bağımlı olacaktır. Yerel geliştirme için Databricks Varlık Paketleri bağımlılıkları paket projesinin requirements*.txt kökündeki dosyada belirtilir, ancak iş görevi kitaplığı bağımlılıkları paket yapılandırma dosyalarınızdabildirilir ve genellikle iş görev türü belirtiminin bir parçası olarak gereklidir.

Paketler, Azure Databricks işleri için aşağıdaki kitaplık bağımlılıkları için destek sağlar:

  • Python tekerlek dosyası
  • JAR dosyası (Java veya Scala)
  • PyPI, Maven veya CRAN paketleri

Not

Kitaplığın desteklenip desteklenmemesi, işin küme yapılandırmasına ve kitaplık kaynağına bağlıdır. Tam kitaplık destek bilgileri için bkz . Kitaplıklar.

Python tekerlek dosyası

bir iş görevine Python tekerlek dosyası eklemek için, içinde libraries yüklenecek her kitaplık için bir whl eşleme belirtin. Çalışma alanı dosyalarından, Unity Kataloğu birimlerinden, bulut nesne depolama alanından veya yerel bir dosya yolundan tekerlek dosyası yükleyebilirsiniz.

Önemli

Kitaplıklar Databricks Runtime 14.3 LTS ve altı kullanılırken DBFS'den yüklenebilir. Ancak, herhangi bir çalışma alanı kullanıcısı DBFS'de depolanan kitaplık dosyalarını değiştirebilir. Azure Databricks çalışma alanında kitaplıkların güvenliğini artırmak için, kitaplık dosyalarını DBFS kökünde depolamak, Databricks Runtime 15.0 ve üzerinde varsayılan olarak kullanım dışıdır ve devre dışıdır. Bkz . Kitaplıkları DBFS kökünde depolamak varsayılan olarak kullanım dışıdır ve devre dışıdır.

Databricks bunun yerine Python kitaplıkları , JAR dosyaları ve Spark bağlayıcıları dahil olmak üzere tüm kitaplıkların çalışma alanı dosyalarına veya Unity Kataloğu birimlerine yüklenmesini ya da kitaplık paketi depolarının kullanılmasını önerir. İş yükünüz bu desenleri desteklemiyorsa, bulut nesne depolama alanında depolanan kitaplıkları da kullanabilirsiniz.

Aşağıdaki örnekte, bir iş görevi için üç Python tekerlek dosyasının nasıl yükleneceği gösterilmektedir.

  • İlk Python tekerlek dosyası daha önce Azure Databricks çalışma alanına yüklenmiş veya eşlemeye syncbir include öğe olarak eklenmiş ve paket yapılandırma dosyasıyla aynı yerel klasörde yer alır.
  • İkinci Python tekerlek dosyası, Azure Databricks çalışma alanında belirtilen çalışma alanı dosyaları konumundadır.
  • Üçüncü Python tekerlek dosyası daha önce Azure Databricks çalışma alanında adlı my-volume birime yüklenmişti.
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 dosyası

bir iş görevine JAR dosyası eklemek için, içinde libraries yüklenecek her kitaplık için bir jar eşleme belirtin. Çalışma alanı dosyalarından, Unity Kataloğu birimlerinden, bulut nesne depolama alanından veya yerel bir dosya yolundan JAR yükleyebilirsiniz.

Önemli

Kitaplıklar Databricks Runtime 14.3 LTS ve altı kullanılırken DBFS'den yüklenebilir. Ancak, herhangi bir çalışma alanı kullanıcısı DBFS'de depolanan kitaplık dosyalarını değiştirebilir. Azure Databricks çalışma alanında kitaplıkların güvenliğini artırmak için, kitaplık dosyalarını DBFS kökünde depolamak, Databricks Runtime 15.0 ve üzerinde varsayılan olarak kullanım dışıdır ve devre dışıdır. Bkz . Kitaplıkları DBFS kökünde depolamak varsayılan olarak kullanım dışıdır ve devre dışıdır.

Databricks bunun yerine Python kitaplıkları , JAR dosyaları ve Spark bağlayıcıları dahil olmak üzere tüm kitaplıkların çalışma alanı dosyalarına veya Unity Kataloğu birimlerine yüklenmesini ya da kitaplık paketi depolarının kullanılmasını önerir. İş yükünüz bu desenleri desteklemiyorsa, bulut nesne depolama alanında depolanan kitaplıkları da kullanabilirsiniz.

Aşağıdaki örnekte, Azure Databricks çalışma alanında adlı my-volume birime önceden yüklenmiş bir JAR dosyasının nasıl yükleneceği gösterilmektedir.

resources:
  jobs:
    my_job:
      # ...
      tasks:
        - task_key: my_task
          # ...
          libraries:
            - jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar

PyPI paketi

bir iş görev tanımına PyPI paketi eklemek için, içinde librariesyüklenecek her PyPI paketi için bir pypi eşleme belirtin. Her eşleme için aşağıdakileri belirtin:

  • için package, yüklenecek PyPI paketinin adını belirtin. İsteğe bağlı tam sürüm belirtimi de desteklenir.
  • İsteğe bağlı olarak, için repoPyPI paketinin bulunabileceği depoyu belirtin. Belirtilmezse, varsayılan pip dizin kullanılır (https://pypi.org/simple/).

Aşağıdaki örnekte iki PyPI paketinin nasıl yükleneceği gösterilmektedir.

  • İlk PyPI paketi, belirtilen paket sürümünü ve varsayılan pip dizini kullanır.
  • İkinci PyPI paketi, belirtilen paket sürümünü ve açıkça belirtilen pip dizini kullanır.
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 paketi

Bir iş görev tanımına Maven paketi eklemek için, içinde librariesyüklenecek her Maven paketi için bir maven eşleme belirtin. Her eşleme için aşağıdakileri belirtin:

  • için coordinates, paket için Gradle stili Maven koordinatlarını belirtin.
  • İsteğe bağlı olarak, için repoMaven paketinin yükleneceği Maven depounu belirtin. Atlanırsa, hem Maven Merkezi Deposu hem de Spark Paketleri Deposu aranır.
  • İsteğe bağlı olarak, için exclusionsaçıkça dışlanması gereken bağımlılıkları belirtin. Bkz. Maven bağımlılık dışlamaları.

Aşağıdaki örnekte iki Maven paketinin nasıl yükleneceği gösterilmektedir.

  • İlk Maven paketi, belirtilen paket koordinatlarını kullanır ve bu paketi hem Maven Central Deposu'nda hem de Spark Packages Deposunda arar.
  • İkinci Maven paketi belirtilen paket koordinatlarını kullanır, bu paketi yalnızca Maven Central Deposunda arar ve bu paketin belirtilen desenle eşleşen bağımlılıklarını içermez.
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*