Udostępnij za pośrednictwem


Tworzenie pliku wheel języka Python przy użyciu pakietów zasobów usługi Databricks

W tym artykule opisano sposób kompilowania, wdrażania i uruchamiania pliku wheel języka Python w ramach projektu pakietu zasobów usługi Databricks. Zobacz Co to są pakiety zasobów usługi Databricks?

Wymagania

Decyzja: Ręczne tworzenie pakietu lub przy użyciu szablonu

Zdecyduj, czy chcesz utworzyć pakiet startowy przy użyciu szablonu, czy ręcznie utworzyć pakiet. Tworzenie pakietu przy użyciu szablonu jest szybsze i łatwiejsze, ale pakiet może generować zawartość, która nie jest potrzebna, a ustawienia domyślne pakietu muszą być dodatkowo dostosowane dla rzeczywistych aplikacji. Ręczne tworzenie pakietu zapewnia pełną kontrolę nad ustawieniami pakietu, ale musisz znać sposób działania pakietów, ponieważ wykonujesz całą pracę od początku. Wybierz jeden z następujących zestawów kroków:

Tworzenie pakietu przy użyciu szablonu

W tych krokach utworzysz pakiet przy użyciu domyślnego szablonu pakietu usługi Azure Databricks dla języka Python. Te kroki prowadzą do utworzenia pakietu składającego się z plików w celu skompilowania w pliku wheel języka Python oraz definicji zadania usługi Azure Databricks w celu skompilowania tego pliku koła języka Python. Następnie należy zweryfikować, wdrożyć i skompilować wdrożone pliki w pliku wheel języka Python z zadania koła języka Python w obszarze roboczym usługi Azure Databricks.

Domyślny szablon pakietu usługi Azure Databricks dla języka Python używa narzędzi setuptools do kompilowania pliku wheel języka Python. Jeśli zamiast tego chcesz użyć poezji do skompilowania pliku wheel języka Python, postępuj zgodnie z instrukcjami w dalszej części tej sekcji, aby zamienić setuptools implementację implementacji poezji.

Krok 1. Konfigurowanie uwierzytelniania

W tym kroku skonfigurujesz uwierzytelnianie między interfejsem wiersza polecenia usługi Databricks na komputerze deweloperskim a obszarem roboczym usługi Azure Databricks. W tym artykule założono, że chcesz użyć uwierzytelniania użytkownika do komputera (U2M) OAuth i odpowiedniego profilu konfiguracji usługi Azure Databricks o nazwie DEFAULT na potrzeby uwierzytelniania.

Uwaga

Uwierzytelnianie U2M jest odpowiednie do wypróbowanie tych kroków w czasie rzeczywistym. W przypadku w pełni zautomatyzowanych przepływów pracy usługa Databricks zaleca zamiast tego użycie uwierzytelniania maszynowego do maszyny OAuth (M2M). Zobacz instrukcje dotyczące konfigurowania uwierzytelniania M2M w temacie Uwierzytelnianie.

  1. Użyj interfejsu wiersza polecenia usługi Databricks, aby lokalnie zainicjować zarządzanie tokenami OAuth, uruchamiając następujące polecenie dla każdego docelowego obszaru roboczego.

    W poniższym poleceniu zastąp ciąg <workspace-url> adresem URL usługi Azure Databricks na obszar roboczy, na przykład https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Interfejs wiersza polecenia usługi Databricks monituje o zapisanie informacji wprowadzonych jako profil konfiguracji usługi Azure Databricks. Naciśnij Enter , aby zaakceptować sugerowaną nazwę profilu lub wprowadź nazwę nowego lub istniejącego profilu. Każdy istniejący profil o tej samej nazwie zostanie zastąpiony wprowadzonymi informacjami. Profile umożliwiają szybkie przełączanie kontekstu uwierzytelniania między wieloma obszarami roboczymi.

    Aby uzyskać listę wszystkich istniejących profilów, w osobnym terminalu lub wierszu polecenia użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić polecenie databricks auth profiles. Aby wyświetlić istniejące ustawienia określonego profilu, uruchom polecenie databricks auth env --profile <profile-name>.

  3. W przeglądarce internetowej wykonaj instrukcje na ekranie, aby zalogować się do obszaru roboczego usługi Azure Databricks.

  4. Aby wyświetlić bieżącą wartość tokenu OAuth profilu i zbliżający się znacznik czasu wygaśnięcia tokenu, uruchom jedno z następujących poleceń:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Jeśli masz wiele profilów o tej samej --host wartości, może być konieczne określenie --host opcji i -p , aby ułatwić interfejsowi wiersza polecenia usługi Databricks znalezienie prawidłowych pasujących informacji o tokenie OAuth.

Krok 2. Tworzenie pakietu

Pakiet zawiera artefakty, które chcesz wdrożyć, oraz ustawienia dla przepływów pracy, które chcesz uruchomić.

  1. Użyj terminalu lub wiersza polecenia, aby przełączyć się do katalogu na lokalnej maszynie deweloperskiej, która będzie zawierać wygenerowany pakiet szablonu.

  2. Użyj wersji interfejsu wiersza polecenia usługi Dataricks, aby uruchomić bundle init polecenie:

    databricks bundle init
    
  3. W polu Template to usepozostaw wartość default-python domyślną ciągu , naciskając Enter.

  4. W polu Unique name for this projectpozostaw wartość my_projectdomyślną , lub wpisz inną wartość, a następnie naciśnij Enter. Określa nazwę katalogu głównego dla tego pakietu. Ten katalog główny jest tworzony w bieżącym katalogu roboczym.

  5. W polu Include a stub (sample) notebookwybierz i no naciśnij Enter. Spowoduje to, że interfejs wiersza polecenia usługi Databricks nie doda do pakietu przykładowego notesu.

  6. W polu Include a stub (sample) DLT pipelinewybierz i no naciśnij Enter. Spowoduje to, że interfejs wiersza polecenia usługi Databricks nie zdefiniuje przykładowego potoku delta live tables w pakiecie.

  7. W polu Include a stub (sample) Python packagepozostaw wartość yes domyślną ciągu , naciskając Enter. Spowoduje to poinstruowanie interfejsu wiersza polecenia usługi Databricks o dodanie przykładowych plików pakietu wheel języka Python i powiązanych instrukcji kompilacji do pakietu.

Krok 3. Eksplorowanie pakietu

Aby wyświetlić pliki wygenerowane przez szablon, przejdź do katalogu głównego nowo utworzonego pakietu i otwórz ten katalog przy użyciu preferowanego środowiska IDE, na przykład programu Visual Studio Code. Pliki o szczególnym znaczeniu obejmują następujące elementy:

  • databricks.yml: Ten plik określa nazwę programową pakietu, zawiera odwołanie do definicji zadania koła języka Python i określa ustawienia dotyczące docelowego obszaru roboczego.
  • resources/<project-name>_job.yml: ten plik określa ustawienia zadania koła języka Python.
  • src/<project-name>: Ten katalog zawiera pliki używane przez zadanie wheel języka Python do kompilowania pliku wheel języka Python.

Uwaga

Jeśli chcesz zainstalować plik wheel języka Python w klastrze docelowym z zainstalowanym środowiskiem Databricks Runtime 12.2 LTS lub nowszym, musisz dodać następujące mapowanie najwyższego databricks.yml poziomu do pliku:

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

To mapowanie powoduje, że interfejs wiersza polecenia usługi Databricks wykonuje następujące czynności:

  • Wdróż kopię pliku wheel języka Python w tle. Ta ścieżka wdrożenia to zazwyczaj ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl.
  • Utwórz notes w tle zawierający instrukcje dotyczące instalowania poprzedniego wdrożonego pliku wheel języka Python w klastrze docelowym. Ścieżka tego notesu jest zwykle ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>następująca: .
  • Po uruchomieniu zadania zawierającego zadanie koła języka Python, które odwołuje się do poprzedniego pliku wheel języka Python, zadanie jest tworzone w tle, które uruchamia poprzedni notes.

Nie trzeba określać tego mapowania dla klastrów docelowych z zainstalowanym środowiskiem Databricks Runtime 13.1 lub nowszym, ponieważ instalacje kół języka Python z systemu plików obszaru roboczego usługi Azure Databricks zostaną automatycznie zainstalowane w tych klastrach docelowych.

Krok 4. Aktualizowanie pakietu projektu w celu używania poezji

Domyślnie szablon pakietu określa kompilowanie pliku wheel języka Python wraz setuptools z plikami setup.py i requirements-dev.txt. Jeśli chcesz zachować te wartości domyślne, przejdź do kroku 5. Zweryfikuj plik konfiguracji pakietu projektu.

Aby zaktualizować pakiet projektu w celu używania poezji zamiast setuptoolsprogramu , upewnij się, że lokalna maszyna deweloperna spełnia następujące wymagania:

  • Poezja w wersji 1.6 lub nowszej. Aby sprawdzić zainstalowaną wersję poezji, uruchom polecenie poetry -V lub poetry --version. Aby zainstalować lub uaktualnić poezję, zobacz Instalacja.
  • Środowisko Python w wersji 3.10 lub nowszej. Aby sprawdzić wersję języka Python, uruchom polecenie python -V lub python --version.
  • Interfejs wiersza polecenia usługi Databricks w wersji 0.209.0 lub nowszej. W wersji interfejsu wiersza polecenia usługi Databricks uruchom polecenie databricks -v lub databricks --version. Zobacz Instalowanie lub aktualizowanie interfejsu wiersza polecenia usługi Databricks.

Wprowadź następujące zmiany w pakiecie projektu:

  1. Z katalogu głównego pakietu poinstruuj poetry , aby zainicjować kompilacje wheel języka Python dla poezji, uruchamiając następujące polecenie:

    poetry init
    
  2. Poezja wyświetla kilka monitów o ukończenie. W przypadku kompilacji wheel języka Python odpowiedz na następujące monity, aby dopasować powiązane ustawienia domyślne w pakiecie projektu:

    1. W polu Package namewpisz nazwę folderu podrzędnego w obszarze /src, a następnie naciśnij Enter. Powinna to być również wartość pakietu name zdefiniowana w pliku pakietu setup.py .
    2. W polu Versionwpisz 0.0.1 i naciśnij Enter. Jest to zgodne z numerem wersji zdefiniowanym w pliku pakietu src/<project-name>/__init__.py .
    3. W polu Descriptionwpisz (zastępując <project-name> ciąg nazwą projektu) i naciśnij Enterwheel file based on <project-name>/src . Jest to zgodne z wartością description zdefiniowaną w pliku szablonu setup.py .
    4. W obszarze Authornaciśnij Enter. Ta wartość domyślna jest zgodna z autorem zdefiniowanym w pliku szablonu setup.py .
    5. W obszarze Licensenaciśnij Enter. Brak licencji zdefiniowanej w szablonie.
    6. W polu Compatible Python versionswprowadź wersję języka Python zgodną z wersją docelową klastrów usługi Azure Databricks (na przykład ^3.10), a następnie naciśnij Enter.
    7. W polu Would you like to define your main dependencies interactively? Wpisz no i naciśnij Enter. Później zdefiniujesz zależności.
    8. W polu Would you like to define your development dependencies interactively? Wpisz no i naciśnij Enter. Później zdefiniujesz zależności.
    9. W przypadku naciśnięcia Do you confirm generation?Enter.
  3. Po zakończeniu monitów poezja dodaje pyproject.toml plik do projektu pakietu. Aby uzyskać informacje o pyproject.toml pliku, zobacz plik pyproject.toml.

  4. Z katalogu głównego pakietu poinstruuj poetry , aby odczytać pyproject.toml plik, rozpoznać zależności i zainstalować je, utworzyć poetry.lock plik, aby zablokować zależności, a na koniec utworzyć środowisko wirtualne. Aby to zrobić, uruchom następujące polecenie:

    poetry install
    
  5. Dodaj następującą sekcję na końcu pyproject.toml pliku, zastępując <project-name> ciąg nazwą katalogu, który zawiera src/<project-name>/main.py plik (na przykład my_project):

    [tool.poetry.scripts]
    main = "<project-name>.main:main"
    

    Sekcja określa punkt wejścia koła języka Python dla zadania koła języka Python.

  6. Dodaj następujące mapowanie na najwyższym poziomie pliku pakietu databricks.yml :

    artifacts:
      default:
        type: whl
        build: poetry build
        path: .
    

    To mapowanie instruuje interfejs wiersza polecenia usługi Databricks w celu utworzenia pliku wheel języka Python przy użyciu poezji.

  7. setup.py Usuń pliki i requirements-dev.txt z pakietu, ponieważ poezja ich nie wymaga.

Krok 5. Weryfikowanie pliku konfiguracji pakietu projektu

W tym kroku sprawdzisz, czy konfiguracja pakietu jest prawidłowa.

  1. Z katalogu głównego użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić bundle validate polecenie w następujący sposób:

    databricks bundle validate
    
  2. Jeśli zostanie zwrócone podsumowanie konfiguracji pakietu, walidacja zakończyła się pomyślnie. Jeśli zostaną zwrócone jakiekolwiek błędy, napraw błędy, a następnie powtórz ten krok.

Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, należy powtórzyć ten krok, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa.

Krok 6. Skompiluj plik wheel języka Python i wdróż projekt lokalny w zdalnym obszarze roboczym

W tym kroku utworzysz plik wheel języka Python, wdrożysz skompilowany plik wheel języka Python w zdalnym obszarze roboczym usługi Azure Databricks i utworzysz zadanie usługi Azure Databricks w obszarze roboczym.

  1. Jeśli używasz polecenia setuptools, zainstaluj wheel pakiety i setuptools , jeśli jeszcze tego nie zrobiono, uruchamiając następujące polecenie:

    pip3 install --upgrade wheel setuptools
    
  2. W terminalu programu Visual Studio Code użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić bundle deploy polecenie w następujący sposób:

    databricks bundle deploy -t dev
    
  3. Jeśli chcesz sprawdzić, czy lokalnie utworzony plik wheel języka Python został wdrożony:

    1. Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Obszar roboczy.
    2. Kliknij następujący folder: Użytkownicy >><your-username>obszaru roboczego > .bundle >><project-name>artefakty deweloperskie >> .internal .><random-guid>

    Plik wheel języka Python powinien znajdować się w tym folderze.

  4. Jeśli chcesz sprawdzić, czy zadanie zostało utworzone:

    1. Na pasku bocznym obszaru roboczego usługi Azure Databricks kliknij pozycję Przepływy pracy.
    2. Na karcie Zadania kliknij pozycję [dev <your-username>] <project-name>_job.
    3. Kliknij kartę Zadania .

    Powinno istnieć jedno zadanie: main_task.

Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 5 do 6, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, a następnie ponownie wdrożyć projekt.

Krok 7. Uruchamianie wdrożonego projektu

W tym kroku uruchomisz zadanie usługi Azure Databricks w obszarze roboczym.

  1. Z katalogu głównego użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić bundle run polecenie w następujący sposób, zastępując <project-name> ciąg nazwą projektu z kroku 2:

    databricks bundle run -t dev <project-name>_job
    
  2. Skopiuj wartość Run URL wyświetlaną w terminalu i wklej tę wartość w przeglądarce internetowej, aby otworzyć obszar roboczy usługi Azure Databricks.

  3. W obszarze roboczym usługi Azure Databricks po pomyślnym zakończeniu zadania i wyświetl zielony pasek tytułu kliknij zadanie main_task , aby wyświetlić wyniki.

Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 5 do 7, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, ponownie wdrożyć projekt i uruchomić ponownie wdrożony projekt.

Osiągnięto koniec kroków tworzenia pakietu przy użyciu szablonu.

Ręczne tworzenie pakietu

W tych krokach utworzysz pakiet od początku ręcznie. Te kroki prowadzą do utworzenia pakietu składającego się z plików w celu skompilowania w pliku wheel języka Python oraz definicji zadania usługi Databricks w celu skompilowania tego pliku koła języka Python. Następnie zweryfikuj, wdróż i skompilujesz wdrożone pliki w pliku wheel języka Python z zadania koła języka Python w obszarze roboczym usługi Databricks.

Te kroki obejmują dodawanie zawartości do pliku YAML. Opcjonalnie możesz chcieć użyć zintegrowanego środowiska projektowego (IDE), które udostępnia automatyczne sugestie i akcje schematu podczas pracy z plikami YAML. W poniższych krokach użyj programu Visual Studio Code z rozszerzeniem YAML zainstalowanym z witryny Visual Studio Code Marketplace.

W poniższych krokach przyjęto założenie, że wiesz już:

Postępuj zgodnie z tymi instrukcjami, aby utworzyć przykładowy pakiet, który kompiluje plik wheel języka Python za pomocą biblioteki Poezja lub setuptools, wdraża plik wheel języka Python, a następnie uruchamia wdrożony plik wheel języka Python.

Jeśli masz już utworzony plik wheel języka Python i chcesz go wdrożyć i uruchomić, przejdź dalej, aby określić ustawienia koła języka Python w pliku konfiguracji pakietu w kroku 3: Utwórz plik konfiguracji pakietu.

Krok 1. Konfigurowanie uwierzytelniania

W tym kroku skonfigurujesz uwierzytelnianie między interfejsem wiersza polecenia usługi Databricks na komputerze deweloperskim a obszarem roboczym usługi Azure Databricks. W tym artykule założono, że chcesz użyć uwierzytelniania użytkownika do komputera (U2M) OAuth i odpowiedniego profilu konfiguracji usługi Azure Databricks o nazwie DEFAULT na potrzeby uwierzytelniania.

Uwaga

Uwierzytelnianie U2M jest odpowiednie do wypróbowanie tych kroków w czasie rzeczywistym. W przypadku w pełni zautomatyzowanych przepływów pracy usługa Databricks zaleca zamiast tego użycie uwierzytelniania maszynowego do maszyny OAuth (M2M). Zobacz instrukcje dotyczące konfigurowania uwierzytelniania M2M w temacie Uwierzytelnianie.

  1. Użyj interfejsu wiersza polecenia usługi Databricks, aby lokalnie zainicjować zarządzanie tokenami OAuth, uruchamiając następujące polecenie dla każdego docelowego obszaru roboczego.

    W poniższym poleceniu zastąp ciąg <workspace-url> adresem URL usługi Azure Databricks na obszar roboczy, na przykład https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. Interfejs wiersza polecenia usługi Databricks monituje o zapisanie informacji wprowadzonych jako profil konfiguracji usługi Azure Databricks. Naciśnij Enter , aby zaakceptować sugerowaną nazwę profilu lub wprowadź nazwę nowego lub istniejącego profilu. Każdy istniejący profil o tej samej nazwie zostanie zastąpiony wprowadzonymi informacjami. Profile umożliwiają szybkie przełączanie kontekstu uwierzytelniania między wieloma obszarami roboczymi.

    Aby uzyskać listę wszystkich istniejących profilów, w osobnym terminalu lub wierszu polecenia użyj interfejsu wiersza polecenia usługi Databricks, aby uruchomić polecenie databricks auth profiles. Aby wyświetlić istniejące ustawienia określonego profilu, uruchom polecenie databricks auth env --profile <profile-name>.

  3. W przeglądarce internetowej wykonaj instrukcje na ekranie, aby zalogować się do obszaru roboczego usługi Azure Databricks.

  4. Aby wyświetlić bieżącą wartość tokenu OAuth profilu i zbliżający się znacznik czasu wygaśnięcia tokenu, uruchom jedno z następujących poleceń:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Jeśli masz wiele profilów o tej samej --host wartości, może być konieczne określenie --host opcji i -p , aby ułatwić interfejsowi wiersza polecenia usługi Databricks znalezienie prawidłowych pasujących informacji o tokenie OAuth.

Krok 2. Tworzenie pakietu

Pakiet zawiera artefakty, które chcesz wdrożyć, oraz ustawienia dla przepływów pracy, które chcesz uruchomić.

  1. W katalogu głównym pakietu utwórz następujące foldery i pliki w zależności od tego, czy używasz poezji, czy setuptools do tworzenia plików wheel języka Python:

    Poezja

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

    Narzędzia instalacyjne

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── setup.py
    
  2. Pozostaw plik __init__.py pusty.

  3. Dodaj następujący kod do main.py pliku, a następnie zapisz plik:

    from my_package.my_module import *
    
    def main():
    
      first = 200
      second = 400
    
      print(f"{first} + {second} = {add_two_numbers(first, second)}")
      print(f"{second} - {first} = {subtract_two_numbers(second, first)}")
      print(f"{first} * {second} = {multiply_two_numbers(first, second)}")
      print(f"{second} / {first} = {divide_two_numbers(second, first)}")
    
    if __name__ == "__main__":
      main()
    
  4. Dodaj następujący kod do my_module.py pliku, a następnie zapisz plik:

    def add_two_numbers(a, b):
      return a + b
    
    def subtract_two_numbers(a, b):
      return a - b
    
    def multiply_two_numbers(a, b):
      return a * b
    
    def divide_two_numbers(a, b):
      return a / b
    
  5. Dodaj następujący kod do pyproject.toml pliku lub setup.py , a następnie zapisz plik:

    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"
    
    • Zastąp my-author-name element nazwą podstawowego kontaktu organizacji.
    • Zastąp my-author-name>@<my-organization element podstawowym adresem e-mail organizacji.
    • Zastąp <my-package-description> ciąg opisem wyświetlania pliku wheel języka Python.

    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"
      ]
    )
    
    • Zastąp ciąg https://<my-url> adresem URL organizacji.
    • Zastąp <my-author-name> element nazwą podstawowego kontaktu organizacji.
    • Zastąp <my-author-name>@<my-organization> element podstawowym adresem e-mail organizacji.
    • Zastąp <my-package-description> ciąg opisem wyświetlania pliku wheel języka Python.

Krok 3. Tworzenie pliku konfiguracji pakietu

Plik konfiguracji pakietu opisuje artefakty, które chcesz wdrożyć, oraz przepływy pracy, które chcesz uruchomić.

  1. W katalogu głównym pakietu dodaj plik konfiguracji pakietu o nazwie databricks.yml. Dodaj następujący kod do tego pliku:

    Poezja

    Uwaga

    Jeśli masz już utworzony plik wheel języka Python i chcesz go wdrożyć, zmodyfikuj następujący plik konfiguracji pakietu, pomijając artifacts mapowanie. Interfejs wiersza polecenia usługi Databricks zakłada, że plik wheel języka Python jest już skompilowany i automatycznie wdroży pliki określone w libraries wpisach tablicy whl .

    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>
    

    Narzędzia instalacyjne

    bundle:
      name: my-wheel-bundle
    
    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>
    

    Zastąp <workspace-url> ciąg adresem URL obszaru roboczego, na przykład https://adb-1234567890123456.7.azuredatabricks.net.

    Mapowanie artifacts jest wymagane do kompilowania plików wheel języka Python z poezją i jest opcjonalne do kompilowania plików wheel języka Python za pomocą polecenia setuptools. Mapowanie artifacts zawiera co najmniej jedną definicję artefaktu z następującymi mapowaniami:

    • Mapowanie type musi być obecne i ustawione, aby whl określić, że plik wheel języka Python ma zostać skompilowany. W przypadku setuptoolsparametru whl jest wartością domyślną, jeśli nie określono definicji artefaktów.
    • Mapowanie path wskazuje ścieżkę do pyproject.toml pliku poezji lub setup.py do pliku .setuptools Ta ścieżka jest względna względem databricks.yml pliku. W przypadku setuptoolsprogramu ta ścieżka jest . domyślnie (ten sam katalog co databricks.yml plik).
    • Mapowanie build wskazuje wszystkie niestandardowe polecenia kompilacji do uruchomienia w celu skompilowania pliku wheel języka Python. W przypadku setuptoolsprogramu to polecenie jest python3 setup.py bdist wheel domyślnie.
    • Mapowanie files składa się z co najmniej jednego source mapowania, które określa wszelkie dodatkowe pliki do uwzględnienia w kompilacji koła języka Python. Wartość domyślna to nie.

    Uwaga

    Jeśli chcesz zainstalować plik wheel języka Python w klastrze docelowym z zainstalowanym środowiskiem Databricks Runtime 12.2 LTS lub nowszym, musisz dodać następujące mapowanie najwyższego databricks.yml poziomu do pliku:

    # Applies to jobs with python_wheel_task and that use
    # clusters with Databricks Runtime 13.0 or below installed.
    experimental:
      python_wheel_wrapper: true
    

    To mapowanie powoduje, że interfejs wiersza polecenia usługi Databricks wykonuje następujące czynności:

    • Wdraża kopię pliku wheel języka Python w tle. Ta ścieżka wdrożenia to zazwyczaj ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl.
    • Tworzy notes w tle zawierający instrukcje dotyczące instalowania poprzedniego wdrożonego pliku wheel języka Python w klastrze docelowym. Ścieżka tego notesu jest zwykle ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>następująca: .
    • Po uruchomieniu zadania zawierającego zadanie koła języka Python, które odwołuje się do poprzedniego pliku wheel języka Python, zadanie jest tworzone w tle, które uruchamia poprzedni notes.

    Nie trzeba określać tego mapowania dla klastrów docelowych z zainstalowanym środowiskiem Databricks Runtime 13.1 lub nowszym, ponieważ instalacje kół języka Python z systemu plików obszaru roboczego usługi Azure Databricks zostaną automatycznie zainstalowane w tych klastrach docelowych.

  2. Jeśli używasz poezji, wykonaj następujące czynności:

    • Zainstaluj program Poezja w wersji 1.6 lub nowszej, jeśli nie został jeszcze zainstalowany. Aby sprawdzić zainstalowaną wersję poezji, uruchom polecenie poetry -V lub poetry --version.
    • Upewnij się, że masz zainstalowany język Python w wersji 3.10 lub nowszej. Aby sprawdzić wersję języka Python, uruchom polecenie python -V lub python --version.
    • Upewnij się, że masz interfejs wiersza polecenia usługi Databricks w wersji 0.209.0 lub nowszej. W wersji interfejsu wiersza polecenia usługi Databricks uruchom polecenie databricks -v lub databricks --version. Zobacz Instalowanie lub aktualizowanie interfejsu wiersza polecenia usługi Databricks.
  3. Jeśli używasz setuptoolspolecenia , zainstaluj wheel pakiety i setuptools , jeśli nie zostały jeszcze zainstalowane, uruchamiając następujące polecenie:

    pip3 install --upgrade wheel setuptools
    
  4. Jeśli zamierzasz przechowywać ten pakiet za pomocą dostawcy Git, dodaj .gitignore plik w katalogu głównym projektu i dodaj następujące wpisy do tego pliku:

    Poezja

    .databricks
    dist
    

    Narzędzia instalacyjne

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

Krok 4. Weryfikowanie pliku konfiguracji pakietu projektu

W tym kroku sprawdzisz, czy konfiguracja pakietu jest prawidłowa.

  1. Z katalogu głównego zweryfikuj plik konfiguracji pakietu:

    databricks bundle validate
    
  2. Jeśli zostanie zwrócone podsumowanie konfiguracji pakietu, walidacja zakończyła się pomyślnie. Jeśli zostaną zwrócone jakiekolwiek błędy, napraw błędy, a następnie powtórz ten krok.

Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, należy powtórzyć ten krok, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa.

Krok 5. Skompiluj plik wheel języka Python i wdróż projekt lokalny w zdalnym obszarze roboczym

Skompiluj lokalnie plik wheel języka Python, wdróż skompilowany plik wheel języka Python w obszarze roboczym, wdróż notes w obszarze roboczym i utwórz zadanie w obszarze roboczym:

databricks bundle deploy -t dev

Krok 6. Uruchamianie wdrożonego projektu

  1. Uruchom wdrożone zadanie, które używa wdrożonego notesu w celu wywołania wdrożonego pliku wheel języka Python:

    databricks bundle run -t dev wheel-job
    
  2. W danych wyjściowych skopiuj element Run URL i wklej go na pasku adresu przeglądarki internetowej.

  3. Na stronie Dane wyjściowe uruchomienia zadania są wyświetlane następujące wyniki:

    200 + 400 = 600
    400 - 200 = 200
    200 * 400 = 80000
    400 / 200 = 2.0
    

Jeśli po tym kroku wprowadzisz jakiekolwiek zmiany w pakiecie, powtórz kroki od 3 do 5, aby sprawdzić, czy konfiguracja pakietu jest nadal prawidłowa, ponownie wdrożyć projekt i uruchomić ponownie wdrożony projekt.

Kompilowanie i instalowanie pliku wheel języka Python dla zadania

Aby utworzyć plik koła języka Python za pomocą biblioteki Poezja lub setuptools, a następnie użyć tego pliku wheel języka Python w zadaniu, musisz dodać jedno lub dwa mapowania do databricks.yml pliku.

Jeśli używasz poezji, musisz uwzględnić następujące artifacts mapowanie w databricks.yml pliku. To mapowanie uruchamia poetry build polecenie i używa pyproject.toml pliku, który znajduje się w tym samym katalogu co databricks.yml plik:

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

Uwaga

Mapowanie artifacts jest opcjonalne dla elementu setuptools. Domyślnie w interfejsie setuptools wiersza polecenia usługi Databricks jest uruchamiane polecenie python3 setup.py bdist_wheel i używa setup.py pliku, który znajduje się w tym samym katalogu co databricks.yml plik. Interfejs wiersza polecenia usługi Databricks zakłada, że uruchomiono już polecenie, takie jak pip3 install --upgrade wheel setuptools instalowanie wheel pakietów i setuptools , jeśli nie zostały jeszcze zainstalowane.

Ponadto mapowanie zadania podrzędnego libraries musi zawierać wartość określającą whl ścieżkę do skompilowany plik wheel języka Python względem pliku konfiguracji, w którym jest zadeklarowany. W poniższym przykładzie pokazano to w zadaniu notesu (wielokropek wskazuje pominiętą zawartość dla zwięzłości):

resources:
  jobs:
    my-notebook-job:
      name: my-notebook-job
      tasks:
        - task_key: my-notebook-job-notebook-task
          notebook_task:
            notebook_path: ./my_notebook.py
          libraries:
            - whl: ./dist/*.whl
          new_cluster:
            # ...

Kompilowanie i instalowanie pliku wheel języka Python dla potoku

Aby utworzyć plik koła języka Python za pomocą poezji lub setuptools odwołać się do tego pliku wheel języka Python w potoku delta Live Tables, musisz dodać %pip install mapowanie do databricks.yml pliku, jeśli używasz poezji, a następnie dodać polecenie do notesu potoku w następujący sposób.

Jeśli używasz poezji, musisz uwzględnić następujące artifacts mapowanie w databricks.yml pliku. To mapowanie uruchamia poetry build polecenie i używa pyproject.toml pliku, który znajduje się w tym samym katalogu co databricks.yml plik:

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

Uwaga

Mapowanie artifacts jest opcjonalne dla elementu setuptools. Domyślnie w interfejsie setuptools wiersza polecenia usługi Databricks jest uruchamiane polecenie python3 setup.py bdist_wheel i używa setup.py pliku, który znajduje się w tym samym katalogu co databricks.yml plik. Interfejs wiersza polecenia usługi Databricks zakłada, że uruchomiono już polecenie, takie jak pip3 install --upgrade wheel setuptools instalowanie wheel pakietów i setuptools , jeśli nie zostały jeszcze zainstalowane.

Ponadto powiązany notes potoku musi zawierać %pip install polecenie, aby zainstalować skompilowany plik wheel języka Python. Zobacz Biblioteki języka Python.