Aracılığıyla paylaş


Databricks Varlık Paketlerini kullanarak Python tekerlek dosyası oluşturma

Bu sayfada Databricks Varlık Paketleri'ni kullanarak python tekerlek dosyasının nasıl derlenip dağıtılacağı ve çalıştırılacağı açıklanmaktadır. Bkz. Databricks Varlık Paketleri nedir?.

JAR oluşturan ve Unity Kataloğu'na yükleyen örnek bir yapılandırma için bkz. Unity Kataloğu'na JAR dosyası yükleyen paket.

Requirements

Şablon kullanarak paket oluşturma

Python için Databricks Varlık Paketleri varsayılan paket şablonunu kullanarak paketi oluşturun. Bu paket, Python tekerlek dosyasına derlenmiş dosyalardan ve bu Python tekerlek dosyasını derlemek için bir Azure Databricks işinin tanımından oluşur. Ardından, Azure Databricks çalışma alanınızdaki Python tekerlek görevinden dağıtılan dosyaları doğrular, dağıtır ve bir Python wheel dosyasına dönüştürürsünüz.

Sıfırdan bir paket oluşturmak istiyorsanız El ile paket oluşturma sayfasına bakın.

1. Adım: Paketi oluşturma

Paket, dağıtmak istediğiniz varlıkları ve çalıştırmak istediğiniz iş akışları için ayarları içerir.

  1. Yerel geliştirme makinenizde şablonun oluşturulan paketini içerecek bir dizine geçmek için terminalinizi veya komut isteminizi kullanın.

  2. Komutu çalıştırmak bundle init için Databricks CLI sürümünü kullanın:

    databricks bundle init
    
  3. Template to use için, default-python tuşuna basarak Enter varsayılan değerini bırakın.

  4. için Unique name for this projectvarsayılan değerini my_projectbırakın veya farklı bir değer yazın ve tuşuna basın Enter. Bu, bu paket için kök dizinin adını belirler. Bu kök dizin, geçerli çalışma dizininiz içinde oluşturulur.

  5. Include a job that runs a notebookiçin no seçin ve Entertuşuna basın. Bu, Databricks CLI'ya paketinize örnek not defteri eklememesi talimatını vermektedir.

  6. Include an ETL pipelineiçin no seçin ve Entertuşuna basın. Bu, Databricks CLI'ya paketinizde örnek işlem hattı tanımlamamasını belirtir.

  7. Include a stub (sample) Python package için, yes tuşuna basarak Enter varsayılan değerini bırakın. Bu, Databricks CLI'ya paketinize örnek Python tekerlek paketi dosyaları ve ilgili derleme yönergeleri eklemesini sağlar.

  8. Use serverlessiçin yes seçin ve Entertuşuna basın. Bu, Databricks CLI'ya paketinizi sunucusuz işlemde çalışacak şekilde yapılandırmasını sağlar.

  9. Default catalog for any tables created by this project [hive_metastore] için var olan bir Unity Katalog kataloğunun adını girin.

  10. Use a personal schema for each user working on this project. için yes öğesini seçin.

2. Adım: Paketi keşfetme

Şablonun oluşturduğu dosyaları görüntülemek için yeni oluşturduğunuz paketin kök dizinine geçin ve bu dizini tercih ettiğiniz IDE ile açın. Belirli bir ilgi alanı olan dosyalar şunlardır:

  • databricks.yml: Bu dosya paketin adını belirtir, paketin dosyalarına başvurular içerir, derleme ayarlarını belirtir whl , katalog ve şema değişkenlerini tanımlar ve hedef çalışma alanları için ayarları belirtir.
  • resources/sample_job.job.yml: Bu dosya Python tekerlek işinin ayarlarını belirtir. İş ayarları hakkında bilgi için bkz. .
  • src/: Bu klasör, Python tekerlek işinin Python tekerlek dosyasını oluşturmak için kullandığı dosyaları içerir.
  • tests/: Bu klasör örnek birim testleri içerir.
  • README.md: Bu dosya, bu paket şablonunu kullanmaya başlama ve kullanma hakkında ek bilgiler içerir.

Note

Python tekerlek dosyasını Databricks Runtime 12.2 LTS veya sonraki bir kümeye yüklemek istiyorsanız, dosyaya aşağıdaki üst düzey eşlemeyi databricks.yml eklemeniz gerekir:

# Applies to all tasks of type python_wheel_task.
experimental:
  python_wheel_wrapper: true

3. Adım: Paket yapılandırmasını doğrulama

Şimdi paket yapılandırmasının geçerli olup olmadığını denetleyin.

  1. Kök dizinden Databricks CLI'sini bundle validate kullanarak şu komutu çalıştırın:

    databricks bundle validate
    
  2. Paket yapılandırmasının özeti döndürülürse doğrulama başarılı olur. Herhangi bir hata döndürülürse, hataları düzeltin ve bu adımı yineleyin.

4. Adım: Paketi uzak çalışma alanına dağıtma

Ardından paketi uzak Azure Databricks çalışma alanınıza dağıtın. Bu, Python tekerlek dosyasını oluşturur. Çalışma alanınızda bir Azure Databricks işi oluşturulduğunu doğrulayın.

  1. Şu komutu çalıştırmak için paket kökünden Databricks CLI'sini bundle deploy kullanın:

    databricks bundle deploy --target dev
    
  2. Yerel olarak derlenmiş Python tekerlek dosyasının dağıtıldığını onaylayın:

    1. Azure Databricks çalışma alanınızın kenar çubuğunda Çalışma Alanı'ya tıklayın.
    2. Şu klasöre tıklayın: Çalışma Alanı > Kullanıcılar ><your-username>> .bundle ><project-name>> dev > artifacts > .internal ><whl-file-name>.whl.

    Python tekerlek dosyası bu klasörde olmalıdır.

  3. İşin oluşturulup oluşturulmadığını denetleyin:

    1. Azure Databricks çalışma alanınızın kenar çubuğunda İşler ve İşlem Hatları'na tıklayın.
    2. İsteğe bağlı olarak İşler ve Bana ait filtrelerini seçin.
    3. [dev <your-username>] sample_joböğesine tıklayın.
    4. Görevler sekmesine tıklayın. Bir python_wheel_task olmalı.

Bu adımdan sonra paketinizde herhangi bir değişiklik yaparsanız, paket yapılandırmanızın hala geçerli olup olmadığını denetlemek için 3-4 arası adımları yineleyin ve projeyi yeniden dağıtın.

5. Adım: Dağıtılan projeyi çalıştırma

Şimdi çalışma alanınızda Azure Databricks işinin çalıştırılmasını tetikleyin.

  1. Kök dizinden Databricks CLI'sini bundle run kullanarak şu komutu çalıştırın:

    databricks bundle run --target dev sample_job
    
  2. Terminalinizde görünen değerini Run URL kopyalayın ve bu değeri web tarayıcınıza yapıştırarak Azure Databricks çalışma alanınızı açın.

  3. Azure Databricks çalışma alanınızda, görev başarıyla tamamlanıp yeşil başlık çubuğu gösterildikten sonra, sonuçları görmek için iş görevine tıklayın.

Poetry veya setuptools kullanarak whl oluşturma

varsayılan-python şablonuyla kullandığınızdadatabricks bundle init, ve uvkullanarak pyproject.toml Python tekerleği oluşturan bir paketin nasıl yapılandırıldığını gösteren bir paket oluşturulur. Ancak, şiir kullanmak veya setuptools onun yerine bir tekerlek oluşturmak isteyebilirsiniz.

Şiir veya kurulum araçlarını yükleme

  1. Poetry'yi veya setuptools yükleyin.

    Poetry

    • Henüz yüklü değilse Poetry, sürüm 1.6 veya üzerini yükleyin. Yüklü Poetry sürümünüzü kontrol etmek için poetry -V veya poetry --version komutunu çalıştırın.
    • Python sürüm 3.10 veya üzerinin yüklü olduğundan emin olun. Python sürümünüzü denetlemek için python -V veya python --version komutunu çalıştırın.

    Setuptools

    Henüz yüklü değilse wheel ve setuptools paketlerini yüklemek için aşağıdaki komutu çalıştırın:

    pip3 install --upgrade wheel setuptools
    
  2. Bu paketi bir Git sağlayıcısıyla depolamak istiyorsanız, projenin köküne bir .gitignore dosya ekleyin ve bu dosyaya aşağıdaki girdileri ekleyin:

    Poetry

    .databricks
    dist
    

    Setuptools

    .databricks
    build
    dist
    src/my_package/my_package.egg-info
    

Derleme dosyalarını ekle

  1. Paketinizin kökünde, Python wheel dosyalarını oluşturmak için Poetry veya setuptools kullanıyorsanız, aşağıdaki klasörleri ve dosyaları oluşturun.

    Poetry

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── pyproject.toml
    

    Setuptools

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── setup.py
    
  2. Aşağıdaki kodu pyproject.toml veya setup.py dosyasına ekleyin:

    Pyproject.toml

    [tool.poetry]
    name = "my_package"
    version = "0.0.1"
    description = "<my-package-description>"
    authors = ["my-author-name <my-author-name>@<my-organization>"]
    
    [tool.poetry.dependencies]
    python = "^3.10"
    
    [build-system]
    requires = ["poetry-core"]
    build-backend = "poetry.core.masonry.api"
    
    [tool.poetry.scripts]
    main = "my_package.main:main"
    
    • my-author-name öğesini kuruluşunuzun temel iletişim kişisinin adıyla değiştirin.
    • yerine my-author-name>@<my-organization kuruluşunuzun birincil e-posta iletişim adresi yazın.
    • <my-package-description> öğesini Python Wheel dosyanız için bir görüntü açıklamasıyla değiştirin.

    Setup.py

    from setuptools import setup, find_packages
    
    import src
    
    setup(
      name = "my_package",
      version = "0.0.1",
      author = "<my-author-name>",
      url = "https://<my-url>",
      author_email = "<my-author-name>@<my-organization>",
      description = "<my-package-description>",
      packages=find_packages(where='./src'),
      package_dir={'': 'src'},
      entry_points={
        "packages": [
          "main=my_package.main:main"
        ]
      },
      install_requires=[
        "setuptools"
      ]
    )
    
    • öğesini kuruluşunuzun URL'si ile değiştirin https://<my-url> .
    • <my-author-name> öğesini kuruluşunuzun temel iletişim kişisinin adıyla değiştirin.
    • yerine <my-author-name>@<my-organization> kuruluşunuzun birincil e-posta iletişim adresi yazın.
    • <my-package-description> öğesini Python Wheel dosyanız için bir görüntü açıklamasıyla değiştirin.

Yapıt paketi yapılandırması ekleme

  1. Eşleme yapılandırmasını artifactsdatabricks.yml'inize ekleyin ve whl ürününü oluşturun:

    Poetry

    Bu yapılandırma poetry build komutunu çalıştırır ve pyproject.toml dosyasının, databricks.yml dosyasıyla aynı dizinde olduğunu gösterir.

    Note

    Zaten bir Python wheel dosyası oluşturduysanız ve yalnızca dağıtmak istiyorsanız, aşağıdaki paket yapılandırma dosyasını artifacts eşlemeyi çıkararak değiştirin. Databricks CLI daha sonra Python tekerlek dosyasının zaten derlendiğini varsayar ve dizinin libraries girdilerinde whl belirtilen dosyaları otomatik olarak dağıtır.

    bundle:
      name: my-wheel-bundle
    
    artifacts:
      default:
        type: whl
        build: poetry build
        path: .
    
    resources:
      jobs:
        wheel-job:
          name: wheel-job
          tasks:
            - task_key: wheel-task
              new_cluster:
                spark_version: 13.3.x-scala2.12
                node_type_id: Standard_DS3_v2
                data_security_mode: USER_ISOLATION
                num_workers: 1
              python_wheel_task:
                entry_point: main
                package_name: my_package
              libraries:
                - whl: ./dist/*.whl
    
    targets:
      dev:
        workspace:
        host: <workspace-url>
    

    Setuptools

    Bu yapılandırma setuptools komutunu çalıştırır ve setup.py dosyasının, databricks.yml dosyasıyla aynı dizinde olduğunu gösterir.

    bundle:
      name: my-wheel-bundle
    
    artifacts:
      default:
        type: whl
        build: python3 setup.py bdist wheel
        path: .
    
    resources:
      jobs:
        wheel-job:
          name: wheel-job
          tasks:
            - task_key: wheel-task
              new_cluster:
                spark_version: 13.3.x-scala2.12
                node_type_id: Standard_DS3_v2
                data_security_mode: USER_ISOLATION
                num_workers: 1
              python_wheel_task:
                entry_point: main
                package_name: my_package
              libraries:
                - whl: ./dist/*.whl
    
    targets:
      dev:
        workspace:
        host: <workspace-url>