Sdílet prostřednictvím


Vytvoření Python whl souboru pomocí Databricks Asset Bundles

Tato stránka popisuje, jak sestavit, nasadit a spustit Python wheel soubor pomocí Databricks Asset Bundles. Podívejte se naCo jsou sady prostředků Databricks?

Příklad konfigurace, která sestaví soubor JAR a nahraje ho do katalogu Unity, najdete v části Sada, která nahraje soubor JAR do katalogu Unity.

Requirements

Vytvoření sady pomocí šablony

Vytvořte balíček pomocí výchozí šablony balíčku pro Python Databricks Asset Bundles. Tato sada obsahuje soubory pro sestavení do souboru kola Pythonu a definici úlohy Azure Databricks pro sestavení tohoto souboru kola Pythonu. Potom ověříte, nasadíte a sestavíte nasazené soubory do souboru kola Pythonu z úlohy kola Pythonu v pracovním prostoru Azure Databricks.

Pokud chcete vytvořit sadu úplně od začátku, přečtěte si téma Ruční vytvoření sady.

Krok 1: Vytvoření sady

Sada obsahuje prostředky, které chcete nasadit, a nastavení pracovních postupů, které chcete spustit.

  1. Pomocí terminálu nebo příkazového řádku přepněte do adresáře na místním vývojovém počítači, který bude obsahovat vygenerovanou sadu šablony.

  2. Ke spuštění bundle init příkazu použijte verzi rozhraní příkazového řádku Databricks:

    databricks bundle init
    
  3. Pro Template to use, ponechte výchozí hodnotu default-python stisknutím klávesy Enter.

  4. Pro Unique name for this project, ponechte výchozí hodnotu my_project, nebo zadejte jinou hodnotu a stiskněte Enter. Určuje název kořenového adresáře pro tuto sadu. Tento kořenový adresář se vytvoří v aktuálním pracovním adresáři.

  5. V Include a job that runs a notebookvyberte no a stiskněte Enter. Tento pokyn rozhraní příkazového řádku Databricks zabraňuje přidání ukázkového poznámkového bloku do vašeho balíčku.

  6. V Include an ETL pipelinevyberte no a stiskněte Enter. Tímto je rozhraní příkazového řádku Databricks instruováno, aby ve vaší sadě nedefinovalo ukázkový kanál.

  7. Pro Include a stub (sample) Python package, ponechte výchozí hodnotu yes stisknutím klávesy Enter. Tím instruuje příkazovou řádku Databricks, aby do balíčku přidala ukázkové soubory balíčků kol Pythonu a instrukce pro sestavení.

  8. V Use serverlessvyberte yes a stiskněte Enter. To dává rozhraní příkazového řádku Databricks pokyn ke konfiguraci sady tak, aby běžela na bezserverových výpočetních prostředcích.

  9. Pro Default catalog for any tables created by this project [hive_metastore] zadejte název existujícího Unity Catalog katalogu.

  10. Pro Use a personal schema for each user working on this project. vyberte yes.

Krok 2: Prozkoumání sady

Pokud chcete zobrazit soubory, které šablona vygenerovala, přepněte do kořenového adresáře nově vytvořené sady prostředků a otevřete tento adresář v preferovaném integrovaném vývojovém prostředí ( IDE). Mezi soubory, které mají zvláštní zájem, patří:

  • databricks.yml: Tento soubor určuje název sady, obsahuje odkazy na soubory sady, určuje whl nastavení sestavení, definuje katalog a proměnné schématu a určuje nastavení pro cílové pracovní prostory.
  • resources/sample_job.job.yml: Tento soubor určuje nastavení úlohy Python wheel. Informace o nastavení úlohy najdete v úloze.
  • src/: Tato složka obsahuje soubory, které úloha kolečka Pythonu používá k sestavení souboru kola Pythonu.
  • tests/: Tato složka obsahuje ukázkové jednotkové testy.
  • README.md: Tento soubor obsahuje další informace o tom, jak začít a používat tuto šablonu sady.

Note

Pokud chcete nainstalovat soubor kola Pythonu do clusteru s Modulem Databricks Runtime 12.2 LTS nebo níže, musíte do databricks.yml souboru přidat následující mapování nejvyšší úrovně:

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

Krok 3: Ověření konfigurace balíčku

Teď zkontrolujte, jestli je konfigurace sady platná.

  1. Z kořenového adresáře spusťte bundle validate příkaz pomocí rozhraní příkazového řádku Databricks:

    databricks bundle validate
    
  2. Pokud se vrátí souhrn konfigurace sady, ověření proběhlo úspěšně. Pokud se vrátí nějaké chyby, opravte chyby a opakujte tento krok.

Krok 4: Nasazení sady do vzdáleného pracovního prostoru

V dalším kroku nasaďte sadu do vzdáleného pracovního prostoru Azure Databricks. Tím se sestaví soubor kola Pythonu. Ověřte, že je ve vašem pracovním prostoru vytvořena úloha (job) Azure Databricks.

  1. Z kořenového adresáře balíčku spusťte příkaz pomocí rozhraní příkazového řádku Databricks bundle deploy.

    databricks bundle deploy --target dev
    
  2. Ověřte, že byl nasazen místně vytvořený Python balíček:

    1. Na bočním panelu pracovního prostoru Azure Databricks klikněte na Pracovní prostor.
    2. Klikněte na následující složku: Pracovní prostor > Uživatelé ><your-username>> .bundle ><project-name>> dev > artifacts > .internal ><whl-file-name>.whl.

    Soubor kola Pythonu by měl být v této složce.

  3. Zkontrolujte, jestli byla úloha vytvořena:

    1. Na bočním panelu pracovního prostoru Azure Databricks klikněte na Úlohy a kanály.
    2. Volitelně můžete vybrat filtry Práce a Vlastním.
    3. Klikněte na [dev <your-username>] sample_job.
    4. Klikněte na kartu Úkoly . Měla by existovat jedna python_wheel_task.

Pokud po tomto kroku provedete nějaké změny sady, opakujte kroky 3 až 4 a zkontrolujte, jestli je konfigurace sady stále platná, a pak projekt znovu nasaďte.

Krok 5: Spuštění nasazeného projektu

Teď ve vašem pracovním prostoru aktivujte spuštění úlohy Azure Databricks.

  1. Z kořenového adresáře spusťte bundle run příkaz pomocí rozhraní příkazového řádku Databricks:

    databricks bundle run --target dev sample_job
    
  2. Zkopírujte hodnotu Run URL, která se zobrazí v terminálu, a vložte ji do svého webového prohlížeče, abyste otevřeli pracovní prostor Azure Databricks.

  3. V pracovním prostoru Azure Databricks, po úspěšném dokončení úlohy a s zeleným záhlavím, klikněte na úkol a zobrazte výsledky.

Postavte whl pomocí Poetry nebo setuptools

Když použijete databricks bundle init s výchozí šablonou Pythonu, vytvoří se sada, která ukazuje, jak nakonfigurovat sadu, která sestaví kolo Pythonu pomocí uv a pyproject.toml. Můžete však chtít místo toho použít Poetry nebo setuptools k sestavení wheelu.

Instalace "Poetry" nebo "setuptools"

  1. Instalace nástroje Poetry nebo setuptools:

    Poetry

    • Nainstalujte Poetry, verzi 1.6 nebo vyšší, pokud ještě není nainstalován. Pokud chcete zkontrolovat nainstalovanou verzi Básní, spusťte příkaz poetry -V nebo poetry --version.
    • Ujistěte se, že máte nainstalovaný Python verze 3.10 nebo novější. Pokud chcete zkontrolovat svou verzi Pythonu, spusťte příkaz python -V nebo python --version.

    Setuptools

    Pokud ještě nejsou nainstalované, nainstalujte balíčky wheelsetuptools spuštěním následujícího příkazu:

    pip3 install --upgrade wheel setuptools
    
  2. Pokud máte v úmyslu uložit tuto sadu pomocí poskytovatele Git, přidejte soubor .gitignore do kořenového adresáře projektu, a do tohoto souboru přidejte následující položky:

    Poetry

    .databricks
    dist
    

    Setuptools

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

Přidej soubory sestavení

  1. V kořenovém adresáři vaší sady vytvořte následující složky a soubory v závislosti na tom, jestli používáte Poetry nebo setuptools pro vytváření souborů kol Pythonu.

    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. Do souboru pyproject.toml nebo setup.py přidejte následující kód:

    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"
    
    • Nahraďte my-author-name primárním jménem kontaktu vaší organizace.
    • Nahraďte my-author-name>@<my-organization primární e-mailovou adresou vaší organizace.
    • Nahraďte <my-package-description> popisem zobrazení pro váš soubor Python wheel.

    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"
      ]
    )
    
    • Nahraďte https://<my-url> adresou URL vaší organizace.
    • Nahraďte <my-author-name> primárním jménem kontaktu vaší organizace.
    • Nahraďte <my-author-name>@<my-organization> primární e-mailovou adresou vaší organizace.
    • Nahraďte <my-package-description> popisem zobrazení pro váš soubor Python wheel.

Přidání konfigurace sady artefaktů

  1. Přidejte do svého objektu artifacts mapování konfiguraci pro sestavení artefaktudatabricks.yml:whl

    Poetry

    Tato konfigurace spustí poetry build příkaz a označuje cestu k pyproject.toml souboru ve stejném adresáři jako databricks.yml soubor.

    Note

    Pokud jste už vytvořili Python wheel soubor a chcete ho nasadit, upravte následující konfigurační soubor tak, že vynecháte mapování artifacts. Rozhraní příkazového řádku Databricks pak předpokládá, že soubor typu wheel pro Python je již sestavený a automaticky nasadí soubory, které jsou zadané v položkách pole librarieswhl.

    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

    Tato konfigurace spustí setuptools příkaz a označuje cestu k setup.py souboru ve stejném adresáři jako databricks.yml soubor.

    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>