Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
- Databricks CLI sürüm 0.218.0 veya üzeri yüklenir ve kimlik doğrulaması yapılandırılır. Yüklü Databricks CLI sürümünüzü denetlemek için komutunu
databricks -vçalıştırın. Databricks CLI'yı yüklemek için bkz. Databricks CLI'yı yükleme veya güncelleştirme. Kimlik doğrulamasını yapılandırmak için bkz. Çalışma alanınıza erişimi yapılandırma. - uv , testleri çalıştırmak ve bu projenin bağımlılıklarını bir IDE'den yüklemek için gereklidir.
- Uzak çalışma alanında çalışma alanı dosyaları etkinleştirilmelidir. Bkz. Çalışma alanı dosyaları nedir?.
- Mevcut bir katalog. Katalog oluşturmak için bkz. Katalog oluşturma.
Ş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.
Yerel geliştirme makinenizde şablonun oluşturulan paketini içerecek bir dizine geçmek için terminalinizi veya komut isteminizi kullanın.
Komutu çalıştırmak
bundle initiçin Databricks CLI sürümünü kullanın:databricks bundle initTemplate to useiçin,default-pythontuşuna basarakEntervarsayılan değerini bırakın.için
Unique name for this projectvarsayılan değerinimy_projectbırakın veya farklı bir değer yazın ve tuşuna basınEnter. Bu, bu paket için kök dizinin adını belirler. Bu kök dizin, geçerli çalışma dizininiz içinde oluşturulur.Include a job that runs a notebookiçinnoseçin veEntertuşuna basın. Bu, Databricks CLI'ya paketinize örnek not defteri eklememesi talimatını vermektedir.Include an ETL pipelineiçinnoseçin veEntertuşuna basın. Bu, Databricks CLI'ya paketinizde örnek işlem hattı tanımlamamasını belirtir.Include a stub (sample) Python packageiçin,yestuşuna basarakEntervarsayılan değerini bırakın. Bu, Databricks CLI'ya paketinize örnek Python tekerlek paketi dosyaları ve ilgili derleme yönergeleri eklemesini sağlar.Use serverlessiçinyesseçin veEntertuşuna basın. Bu, Databricks CLI'ya paketinizi sunucusuz işlemde çalışacak şekilde yapılandırmasını sağlar.Default catalog for any tables created by this project [hive_metastore]için var olan bir Unity Katalog kataloğunun adını girin.Use a personal schema for each user working on this project.içinyesöğ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ı belirtirwhl, 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. iş. -
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.
Kök dizinden Databricks CLI'sini
bundle validatekullanarak şu komutu çalıştırın:databricks bundle validatePaket 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.
Şu komutu çalıştırmak için paket kökünden Databricks CLI'sini
bundle deploykullanın:databricks bundle deploy --target devYerel olarak derlenmiş Python tekerlek dosyasının dağıtıldığını onaylayın:
- Azure Databricks çalışma alanınızın kenar çubuğunda Çalışma Alanı'ya tıklayın.
- Ş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.
İşin oluşturulup oluşturulmadığını denetleyin:
- Azure Databricks çalışma alanınızın kenar çubuğunda İşler ve İşlem Hatları'na tıklayın.
- İsteğe bağlı olarak İşler ve Bana ait filtrelerini seçin.
-
[dev
<your-username>]sample_joböğesine tıklayın. - 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.
Kök dizinden Databricks CLI'sini
bundle runkullanarak şu komutu çalıştırın:databricks bundle run --target dev sample_jobTerminalinizde görünen değerini
Run URLkopyalayın ve bu değeri web tarayıcınıza yapıştırarak Azure Databricks çalışma alanınızı açın.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
Poetry'yi veya
setuptoolsyü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 -Vveyapoetry --versionkomutunu ç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 -Vveyapython --versionkomutunu çalıştırın.
Setuptools
Henüz yüklü değilse
wheelvesetuptoolspaketlerini yüklemek için aşağıdaki komutu çalıştırın:pip3 install --upgrade wheel setuptools- 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
Bu paketi bir Git sağlayıcısıyla depolamak istiyorsanız, projenin köküne bir
.gitignoredosya ekleyin ve bu dosyaya aşağıdaki girdileri ekleyin:Poetry
.databricks distSetuptools
.databricks build dist src/my_package/my_package.egg-info
Derleme dosyalarını ekle
Paketinizin kökünde, Python wheel dosyalarını oluşturmak için Poetry veya
setuptoolskullanıyorsanız, aşağıdaki klasörleri ve dosyaları oluşturun.Poetry
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── pyproject.tomlSetuptools
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── setup.pyAşağıdaki kodu
pyproject.tomlveyasetup.pydosyası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-organizationkuruluş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
Eşleme yapılandırmasını
artifactsdatabricks.yml'inize ekleyin vewhlürününü oluşturun:Poetry
Bu yapılandırma
poetry buildkomutunu çalıştırır vepyproject.tomldosyasının,databricks.ymldosyası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ı
artifactseşlemeyi çıkararak değiştirin. Databricks CLI daha sonra Python tekerlek dosyasının zaten derlendiğini varsayar ve dizininlibrariesgirdilerindewhlbelirtilen 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
setuptoolskomutunu çalıştırır vesetup.pydosyasının,databricks.ymldosyası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>