Sviluppare un file wheel Python usando i bundle di asset di Databricks
Questo articolo descrive come compilare, distribuire ed eseguire un file wheel python come parte di un progetto Di bundle di asset di Databricks. Consultare Che cosa sono i bundle di asset di Databricks?
Requisiti
- Interfaccia della riga di comando di Databricks versione 0.218.0 o successiva. Per controllare la versione installata dell'interfaccia della riga di comando di Databricks, eseguire il comando
databricks -v
. Per installare Databricks CLI non è installato, consultare Installare o aggiornare il Databricks CLI. - L'area di lavoro remota deve avere abilitati i file dell'area di lavoro. Si veda Che cosa sono i file di area di lavoro?.
Decisione: creare il bundle manualmente o usando un modello
Decidere se creare un bundle iniziale usando un modello o per creare manualmente il bundle. La creazione del bundle tramite un modello è più rapida e semplice, ma il bundle potrebbe produrre contenuto non necessario e le impostazioni predefinite del bundle devono essere ulteriormente personalizzate per le applicazioni reali. La creazione manuale del bundle offre il controllo completo sulle impostazioni del bundle, ma è necessario avere familiarità con il funzionamento dei bundle, mentre si esegue tutto il lavoro fin dall'inizio. Scegliere uno dei set di passaggi seguenti:
Creare il bundle usando un modello
In questi passaggi viene creato il bundle usando il modello di bundle predefinito di Azure Databricks per Python. Questi passaggi illustrano come creare un bundle costituito da file da compilare in un file con rotellina Python e la definizione di un processo di Azure Databricks per compilare questo file con rotellina Python. È quindi possibile convalidare, distribuire e compilare i file distribuiti in un file wheel python dal processo ruota di Python all'interno dell'area di lavoro di Azure Databricks.
Il modello di bundle predefinito di Azure Databricks per Python usa setuptools per compilare il file wheel python. Se invece si vuole usare Poetry per compilare il file wheel python, seguire le istruzioni riportate più avanti in questa sezione per sostituire l'implementazione setuptools
per un'implementazione Di Poesia.
Passaggio 1: Configurare l'autenticazione
In questo passaggio viene configurata l'autenticazione tra l'interfaccia della riga di comando di Databricks nel computer di sviluppo e l'area di lavoro di Azure Databricks. Questo articolo presuppone che si voglia usare l'autenticazione OAuth da utente a computer (U2M) e un profilo di configurazione di Azure Databricks corrispondente denominato DEFAULT
per l'autenticazione.
Nota
L'autenticazione U2M è appropriata per provare questi passaggi in tempo reale. Per i flussi di lavoro completamente automatizzati, Databricks consiglia di usare invece l'autenticazione OAuth da computer a computer (M2M). Vedere le istruzioni di configurazione dell'autenticazione M2M.
Usare il Databricks CLI per avviare la gestione dei token OAuth in locale eseguendo il seguente comando per ogni area di lavoro di destinazione.
Nel seguente comando, sostituire
<workspace-url>
con l’URL per l'area di lavoro di Azure Databricks, per esempiohttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Il Databricks CLI richiede di salvare le informazioni immesse come profilo di configurazione di Azure Databricks. Premere
Enter
per accettare il nome del profilo suggerito oppure immettere il nome di un profilo nuovo o esistente. Qualsiasi profilo esistente con lo stesso nome viene sovrascritto con le informazioni immesse. È possibile usare i profili per cambiare rapidamente il contesto di autenticazione tra più aree di lavoro.Per ottenere un elenco di tutti i profili esistenti, in un terminale o un prompt dei comandi separato, usare il Databricks CLI per eseguire il comando
databricks auth profiles
. Per visualizzare le impostazioni esistenti di un profilo specifico, eseguire il comandodatabricks auth env --profile <profile-name>
.Nel Web browser completare le istruzioni visualizzate per accedere all'area di lavoro di Azure Databricks.
Per visualizzare il valore corrente del token OAuth di un profilo e il timestamp di scadenza imminente del token, eseguire uno dei comandi seguenti:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Se si dispone di più profili con lo stesso valore
--host
, potrebbe essere necessario specificare insieme le opzioni--host
e-p
per consentire al Databricks CLI di trovare le informazioni corrette corrispondenti sul token OAuth.
Passaggio 2: Creare il bundle
Un bundle contiene gli artefatti da distribuire e le impostazioni per i flussi di lavoro da eseguire.
Usare il terminale o il prompt dei comandi per passare a una directory nel computer di sviluppo locale che conterrà il bundle generato dal modello.
Usare la versione dell'interfaccia della riga di comando di Databricks per eseguire il
bundle init
comando :databricks bundle init
Per
Template to use
, lasciare il valore predefinito didefault-python
premendoEnter
.Per
Unique name for this project
, lasciare il valore predefinito dimy_project
o digitare un valore diverso e quindi premereEnter
. Questo determina il nome della directory radice per questo bundle. Questa directory radice viene creata all’interno della directory di lavoro corrente.Per
Include a stub (sample) notebook
, selezionareno
e premereEnter
. Ciò indica all'interfaccia della riga di comando di Databricks di non aggiungere un notebook di esempio al bundle.Per
Include a stub (sample) DLT pipeline
, selezionareno
e premereEnter
. Ciò indica all'interfaccia della riga di comando di Databricks di non definire nel bundle una pipeline di tabelle Delta Live di esempio.Per
Include a stub (sample) Python package
, lasciare il valore predefinito diyes
premendoEnter
. In questo modo si indica all'interfaccia della riga di comando di Databricks di aggiungere file di pacchetto python di esempio e istruzioni di compilazione correlate al bundle.
Passaggio 3: Esplorare il bundle
Per visualizzare i file generati dal modello, passare alla directory radice del bundle appena creato e aprire questa directory con l'IDE preferito, ad esempio Visual Studio Code. I file seguenti sono di particolare interesse:
databricks.yml
: questo file specifica il nome programmatico del bundle, include un riferimento alla definizione del processo wheel python e specifica le impostazioni relative all'area di lavoro di destinazione.resources/<project-name>_job.yml
: questo file specifica le impostazioni del processo ruota di Python.src/<project-name>
: questa directory include i file usati dal processo wheel python per compilare il file wheel python.
Nota
Se si vuole installare il file wheel python in un cluster di destinazione con Databricks Runtime 12.2 LTS o versione successiva, è necessario aggiungere il mapping di primo livello seguente al databricks.yml
file:
# Applies to all tasks of type python_wheel_task.
experimental:
python_wheel_wrapper: true
Questo mapping indica all'interfaccia della riga di comando di Databricks di eseguire le operazioni seguenti:
- Distribuire una copia del file wheel python in background. Questo percorso di distribuzione è in
${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl
genere . - Creare un notebook in background contenente le istruzioni per installare il file wheel python distribuito precedente nel cluster di destinazione. Il percorso di questo notebook è in
${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>
genere . - Quando si esegue un processo che contiene un'attività con rotellina Python e che le attività fanno riferimento al file con rotellina Python precedente, viene creato un processo in background che esegue il notebook precedente.
Non è necessario specificare questo mapping per i cluster di destinazione con Databricks Runtime 13.1 o versione successiva installata, perché le installazioni di ruote Python dal file system dell'area di lavoro di Azure Databricks verranno installate automaticamente in questi cluster di destinazione.
Passaggio 4: Aggiornare il bundle del progetto per usare Poesia
Per impostazione predefinita, il modello di aggregazione specifica la compilazione del file wheel python usando setuptools
insieme ai file setup.py
e requirements-dev.txt
. Per mantenere queste impostazioni predefinite, passare al passaggio 5: Convalidare il file di configurazione del bundle del progetto.
Per aggiornare il bundle del progetto in modo da usare Poetry invece di setuptools
, assicurarsi che il computer di sviluppo locale soddisfi i requisiti seguenti:
- Poesia versione 1.6 o successiva. Per controllare la versione installata di Poetry, eseguire il comando
poetry -V
opoetry --version
. Per installare o aggiornare Poetry, vedi Installazione. - Python versione 3.10 o successiva. Per controllare la versione di Python, eseguire il comando
python -V
opython --version
. - Interfaccia della riga di comando di Databricks versione 0.209.0 o successiva. Per la versione dell'interfaccia della riga di comando di Databricks, eseguire il comando
databricks -v
odatabricks --version
. Consultare Installare o aggiornare il Databricks CLI.
Apportare le modifiche seguenti al bundle del progetto:
Dalla directory radice del bundle, indicare
poetry
di inizializzare le compilazioni della rotellina Python per Poetry eseguendo il comando seguente:poetry init
Poetry mostra diversi prompt da completare. Per le compilazioni della rotellina Python, rispondere a queste richieste come indicato di seguito per corrispondere alle impostazioni predefinite correlate nel bundle del progetto:
- Per
Package name
, digitare il nome della cartella figlio in/src
e quindi premereEnter
. Deve trattarsi anche del valore delname
pacchetto definito nel file delsetup.py
bundle. - Per
Version
, digitare0.0.1
e premereEnter
. Corrisponde al numero di versione definito nel file delsrc/<project-name>/__init__.py
bundle. - Per
Description
, digitarewheel file based on <project-name>/src
(sostituendo<project-name>
con il nome del progetto) e premereEnter
. Corrisponde aldescription
valore definito nel file delsetup.py
modello. - Per
Author
, premereEnter
. Questo valore predefinito corrisponde all'autore definito nel file delsetup.py
modello. - Per
License
, premereEnter
. Nel modello non è definita alcuna licenza. - Per
Compatible Python versions
immettere la versione python corrispondente a quella nei cluster Azure Databricks di destinazione (ad esempio,^3.10
) e premereEnter
. - Per
Would you like to define your main dependencies interactively?
Tipono
e premereEnter
. Le dipendenze verranno definite in un secondo momento. - Per
Would you like to define your development dependencies interactively?
Tipono
e premereEnter
. Le dipendenze verranno definite in un secondo momento. - Per
Do you confirm generation?
PremereEnter
.
- Per
Dopo aver completato le richieste, Poetry aggiunge un
pyproject.toml
file al progetto del bundle. Per informazioni sul filepyproject.toml
, consultare il file pyproject.toml.Dalla directory radice del bundle, indicare
poetry
di leggere ilpyproject.toml
file, risolvere le dipendenze e installarle, creare unpoetry.lock
file per bloccare le dipendenze e infine creare un ambiente virtuale. A tale scopo, usare il comando seguente:poetry install
Aggiungere la sezione seguente alla fine del
pyproject.toml
file, sostituendo<project-name>
con il nome della directory che contiene ilsrc/<project-name>/main.py
file , ad esempiomy_project
:[tool.poetry.scripts] main = "<project-name>.main:main"
La sezione specifica il punto di ingresso della rotellina Python per il processo con rotellina Python.
Aggiungere il mapping seguente al livello superiore del file del
databricks.yml
bundle:artifacts: default: type: whl build: poetry build path: .
Questo mapping indica all'interfaccia della riga di comando di Databricks di usare Poetry per creare un file wheel python.
Eliminare i
setup.py
file erequirements-dev.txt
dal bundle, perché Poesia non ne ha bisogno.
Passaggio 5: Convalidare il file di configurazione del bundle del progetto
In questo passaggio si verifica se la configurazione del bundle è valida.
Dalla directory radice usare l'interfaccia della riga di comando di Databricks per eseguire il comando
bundle validate
, come indicato di seguito:databricks bundle validate
Se viene restituito un riepilogo della configurazione del bundle, la convalida ha avuto esito positivo. Se vengono restituiti errori, correggerli e ripetere questo passaggio.
Se si apportano modifiche al bundle dopo questo passaggio, è necessario ripetere questo passaggio per verificare se la configurazione del bundle è ancora valida.
Passaggio 6: Compilare il file wheel python e distribuire il progetto locale nell'area di lavoro remota
In questo passaggio si compila il file wheel python, si distribuisce il file wheel Python compilato nell'area di lavoro remota di Azure Databricks e si crea il processo di Azure Databricks all'interno dell'area di lavoro.
Se si usa
setuptools
, installare iwheel
pacchetti esetuptools
se non è già stato fatto, eseguendo il comando seguente:pip3 install --upgrade wheel setuptools
Nel terminale di Visual Studio Code usare l'interfaccia della riga di comando di Databricks per eseguire il
bundle deploy
comando come indicato di seguito:databricks bundle deploy -t dev
Se si vuole verificare se è stato distribuito il file wheel python creato in locale:
- Nella barra laterale dell'area di lavoro di Azure Databricks fare clic su Area di lavoro.
- Fare clic nella cartella seguente: Utenti >
<your-username>
> dell'area di lavoro > .bundle ><project-name>
> dev > artifacts > .internal .><random-guid>
Il file wheel python deve trovarsi in questa cartella.
Per verificare se il processo è stato creato:
- Nella barra laterale dell'area di lavoro di Azure Databricks fare clic su Flussi di lavoro.
- Nella scheda Processi fare clic su [dev
<your-username>
]<project-name>
_job. - Fare clic sulla scheda Attività.
Deve essere presente un'attività: main_task.
Se si apportano modifiche al bundle dopo questo passaggio, è necessario ripetere i passaggi da 5 a 6 per verificare se la configurazione del bundle è ancora valida e quindi ridistribuire il progetto.
Passaggio 7: Eseguire il progetto distribuito
In questo passaggio si esegue il processo di Azure Databricks nell’area di lavoro.
Dalla directory radice usare l'interfaccia della riga di comando di Databricks per eseguire il comando
bundle run
, come indicato di seguito, sostituendo<project-name>
con il nome del progetto nel passaggio 2:databricks bundle run -t dev <project-name>_job
Copiare il valore di
Run URL
visualizzato nel terminale e incollare questo valore nel Web browser per aprire l'area di lavoro di Azure Databricks.Nell'area di lavoro di Azure Databricks, al termine dell'attività e viene visualizzata una barra del titolo verde, fare clic sull'attività main_task per visualizzare i risultati.
Se si apportano modifiche al bundle dopo questo passaggio, è necessario ripetere i passaggi da 5 a 7 per verificare se la configurazione del bundle è ancora valida, ridistribuire il progetto ed eseguire il progetto ridistribuito.
È stata raggiunta la fine dei passaggi per la creazione di un bundle usando un modello.
Creare manualmente il bundle
In questi passaggi si crea il bundle dall'inizio a mano. Questi passaggi illustrano come creare un bundle costituito da file da compilare in un file con rotellina Python e la definizione di un processo di Databricks per compilare questo file con rotellina Python. È quindi possibile convalidare, distribuire e compilare i file distribuiti in un file con rotellina Python dal processo wheel python all'interno dell'area di lavoro di Databricks.
Questi passaggi includono l'aggiunta di contenuto a un file YAML. Facoltativamente, è possibile usare un ambiente di sviluppo integrato (IDE) che fornisce suggerimenti e azioni automatici dello schema quando si usano i file YAML. La procedura seguente usa Visual Studio Code con l'estensione YAML installata da Visual Studio Code Marketplace.
Questi passaggi presuppongono che l'utente sappia già:
- Come creare, compilare e usare i file con rotellina Python con Poesia o
setuptools
. Per La poesia, vedi Utilizzo di base. Persetuptools
, vedere la Guida per l'utente per la creazione di pacchetti Python. - Come usare i file wheel python come parte di un processo di Azure Databricks. Vedere Usare un file wheel python in un processo di Azure Databricks.
Seguire queste istruzioni per creare un bundle di esempio che compila un file wheel python con Poetry o setuptools
, distribuisce il file wheel python e quindi esegue il file wheel python distribuito.
Se è già stato creato un file wheel python e si vuole semplicemente distribuirlo ed eseguirlo, passare direttamente alla specifica delle impostazioni della rotellina Python nel file di configurazione del bundle nel passaggio 3: Creare il file di configurazione del bundle.
Passaggio 1: Configurare l'autenticazione
In questo passaggio viene configurata l'autenticazione tra l'interfaccia della riga di comando di Databricks nel computer di sviluppo e l'area di lavoro di Azure Databricks. Questo articolo presuppone che si voglia usare l'autenticazione OAuth da utente a computer (U2M) e un profilo di configurazione di Azure Databricks corrispondente denominato DEFAULT
per l'autenticazione.
Nota
L'autenticazione U2M è appropriata per provare questi passaggi in tempo reale. Per i flussi di lavoro completamente automatizzati, Databricks consiglia di usare invece l'autenticazione OAuth da computer a computer (M2M). Vedere le istruzioni di configurazione dell'autenticazione M2M.
Usare il Databricks CLI per avviare la gestione dei token OAuth in locale eseguendo il seguente comando per ogni area di lavoro di destinazione.
Nel seguente comando, sostituire
<workspace-url>
con l’URL per l'area di lavoro di Azure Databricks, per esempiohttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Il Databricks CLI richiede di salvare le informazioni immesse come profilo di configurazione di Azure Databricks. Premere
Enter
per accettare il nome del profilo suggerito oppure immettere il nome di un profilo nuovo o esistente. Qualsiasi profilo esistente con lo stesso nome viene sovrascritto con le informazioni immesse. È possibile usare i profili per cambiare rapidamente il contesto di autenticazione tra più aree di lavoro.Per ottenere un elenco di tutti i profili esistenti, in un terminale o un prompt dei comandi separato, usare il Databricks CLI per eseguire il comando
databricks auth profiles
. Per visualizzare le impostazioni esistenti di un profilo specifico, eseguire il comandodatabricks auth env --profile <profile-name>
.Nel Web browser completare le istruzioni visualizzate per accedere all'area di lavoro di Azure Databricks.
Per visualizzare il valore corrente del token OAuth di un profilo e il timestamp di scadenza imminente del token, eseguire uno dei comandi seguenti:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Se si dispone di più profili con lo stesso valore
--host
, potrebbe essere necessario specificare insieme le opzioni--host
e-p
per consentire al Databricks CLI di trovare le informazioni corrette corrispondenti sul token OAuth.
Passaggio 2: Creazione del bundle
Un bundle contiene gli artefatti da distribuire e le impostazioni per i flussi di lavoro da eseguire.
Nella radice del bundle creare le cartelle e i file seguenti, a seconda che si usi Poetry o
setuptools
per la creazione di file wheel Python:Poetry
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── pyproject.toml
Strumenti di installazione
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── setup.py
Lasciare vuoto il
__init__.py
file.Aggiungere il codice seguente al
main.py
file e quindi salvare il file: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()
Aggiungere il codice seguente al
my_module.py
file e quindi salvare il file: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
Aggiungere il codice seguente al
pyproject.toml
file osetup.py
e quindi salvare il file: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"
- Sostituire
my-author-name
con il nome del contatto principale dell'organizzazione. - Sostituire
my-author-name>@<my-organization
con l'indirizzo di contatto di posta elettronica principale dell'organizzazione. - Sostituire
<my-package-description>
con una descrizione di visualizzazione per il file wheel 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" ] )
- Sostituire
https://<my-url>
con l'URL dell'organizzazione. - Sostituire
<my-author-name>
con il nome del contatto principale dell'organizzazione. - Sostituire
<my-author-name>@<my-organization>
con l'indirizzo di contatto di posta elettronica principale dell'organizzazione. - Sostituire
<my-package-description>
con una descrizione di visualizzazione per il file wheel python.
- Sostituire
Passaggio 3: Creare il file di configurazione del bundle
Un file di configurazione bundle descrive gli artefatti da distribuire e i flussi di lavoro da eseguire.
Nella radice del bundle aggiungere un file di configurazione del bundle denominato
databricks.yml
. Aggiungere il codice seguente al file:Poetry
Nota
Se è già stato creato un file wheel python e si vuole semplicemente distribuirlo, modificare il file di configurazione del bundle seguente omettendo il
artifacts
mapping. L'interfaccia della riga di comando di Databricks presuppone quindi che il file wheel python sia già compilato e distribuirà automaticamente i file specificati nellelibraries
voci dellawhl
matrice.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>
Strumenti di installazione
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>
Sostituire
<workspace-url>
con l'URL per area di lavoro, ad esempiohttps://adb-1234567890123456.7.azuredatabricks.net
.Il
artifacts
mapping è necessario per compilare file wheel Python con Poetry ed è facoltativo per compilare file wheel python consetuptools
. Ilartifacts
mapping contiene una o più definizioni di artefatto con i mapping seguenti:- Il
type
mapping deve essere presente e impostato suwhl
per specificare che deve essere compilato un file wheel python. Persetuptools
,whl
è l'impostazione predefinita se non vengono specificate definizioni di artefatti. - Il
path
mapping indica il percorso delpyproject.toml
file per Poetry o nelsetup.py
file persetuptools
. Questo percorso è relativo aldatabricks.yml
file. Persetuptools
, questo percorso è.
(la stessa directory deldatabricks.yml
file) per impostazione predefinita. - Il
build
mapping indica i comandi di compilazione personalizzati da eseguire per compilare il file wheel python. Persetuptools
, questo comando èpython3 setup.py bdist wheel
per impostazione predefinita. - Il
files
mapping è costituito da uno o piùsource
mapping che specificano eventuali file aggiuntivi da includere nella compilazione della rotellina Python. Non prevede alcun valore predefinito.
Nota
Se si vuole installare il file wheel python in un cluster di destinazione con Databricks Runtime 12.2 LTS o versione successiva, è necessario aggiungere il mapping di primo livello seguente al
databricks.yml
file:# Applies to jobs with python_wheel_task and that use # clusters with Databricks Runtime 13.0 or below installed. experimental: python_wheel_wrapper: true
Questo mapping indica all'interfaccia della riga di comando di Databricks di eseguire le operazioni seguenti:
- Distribuisce una copia del file wheel python in background. Questo percorso di distribuzione è in
${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl
genere . - Crea un notebook in background che contiene istruzioni per installare il file wheel python distribuito precedente nel cluster di destinazione. Il percorso di questo notebook è in
${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>
genere . - Quando si esegue un processo che contiene un'attività con rotellina Python e tale attività fa riferimento al file della rotellina Python precedente, viene creato un processo in background che esegue il notebook precedente.
Non è necessario specificare questo mapping per i cluster di destinazione con Databricks Runtime 13.1 o versione successiva installata, perché le installazioni di ruote Python dal file system dell'area di lavoro di Azure Databricks verranno installate automaticamente in questi cluster di destinazione.
- Il
Se si usa Poesia, eseguire le operazioni seguenti:
- Installare Poetry, versione 1.6 o successiva, se non è già installato. Per controllare la versione installata di Poetry, eseguire il comando
poetry -V
opoetry --version
. - Assicurarsi di avere installato Python versione 3.10 o successiva. Per controllare la versione di Python, eseguire il comando
python -V
opython --version
. - Assicurarsi di avere l'interfaccia della riga di comando di Databricks versione 0.209.0 o successiva. Per la versione dell'interfaccia della riga di comando di Databricks, eseguire il comando
databricks -v
odatabricks --version
. Consultare Installare o aggiornare il Databricks CLI.
- Installare Poetry, versione 1.6 o successiva, se non è già installato. Per controllare la versione installata di Poetry, eseguire il comando
Se si usa
setuptools
, installare iwheel
pacchetti esetuptools
se non sono già installati, eseguendo il comando seguente:pip3 install --upgrade wheel setuptools
Se si intende archiviare questo bundle con un provider Git, aggiungere un
.gitignore
file nella radice del progetto e aggiungere le voci seguenti a questo file:Poetry
.databricks dist
Strumenti di installazione
.databricks build dist src/my_package/my_package.egg-info
Passaggio 4: convalidare il file di configurazione del bundle del progetto
In questo passaggio si verifica se la configurazione del bundle è valida.
Dalla directory radice convalidare il file di configurazione del bundle:
databricks bundle validate
Se viene restituito un riepilogo della configurazione del bundle, la convalida ha avuto esito positivo. Se vengono restituiti errori, correggerli e ripetere questo passaggio.
Se si apportano modifiche al bundle dopo questo passaggio, è necessario ripetere questo passaggio per verificare se la configurazione del bundle è ancora valida.
Passaggio 5: Compilare il file wheel python e distribuire il progetto locale nell'area di lavoro remota
Compilare il file wheel python in locale, distribuire il file python wheel compilato nell'area di lavoro, distribuire il notebook nell'area di lavoro e creare il processo nell'area di lavoro:
databricks bundle deploy -t dev
Passaggio 6: eseguire il progetto distribuito
Eseguire il processo distribuito, che usa il notebook distribuito per chiamare il file wheel python distribuito:
databricks bundle run -t dev wheel-job
Nell'output copiare
Run URL
e incollarlo nella barra degli indirizzi del Web browser.Nella pagina Output dell'esecuzione del processo vengono visualizzati i risultati seguenti:
200 + 400 = 600 400 - 200 = 200 200 * 400 = 80000 400 / 200 = 2.0
Se si apportano modifiche al bundle dopo questo passaggio, è necessario ripetere i passaggi da 3 a 5 per verificare se la configurazione del bundle è ancora valida, ridistribuire il progetto ed eseguire il progetto ridistribuito.
Compilare e installare un file wheel Python per un processo
Per creare un file wheel python con Poetry o setuptools
e quindi usare il file wheel python in un processo, è necessario aggiungere uno o due mapping al databricks.yml
file.
Se si utilizza Poesia, è necessario includere il mapping seguente artifacts
nel databricks.yml
file. Questo mapping esegue il poetry build
comando e usa il pyproject.toml
file che si trova nella stessa directory del databricks.yml
file:
artifacts:
default:
type: whl
build: poetry build
path: .
Nota
Il artifacts
mapping è facoltativo per setuptools
. Per impostazione predefinita, per setuptools
l'interfaccia della riga di comando di Databricks esegue il comando python3 setup.py bdist_wheel
e usa il setup.py
file che si trova nella stessa directory del databricks.yml
file. L'interfaccia della riga di comando di Databricks presuppone che sia già stato eseguito un comando, pip3 install --upgrade wheel setuptools
ad esempio per installare i wheel
pacchetti e setuptools
se non sono già installati.
Inoltre, il mapping dell'attività di libraries
processo deve contenere un whl
valore che specifica il percorso del file wheel python compilato rispetto al file di configurazione in cui viene dichiarato. Nell'esempio seguente viene illustrato in un'attività del notebook (i puntini di sospensione indicano che il contenuto viene omesso per brevità):
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:
# ...
Compilare e installare un file wheel Python per una pipeline
Per creare un file con rotellina Python con Poema o setuptools
quindi fare riferimento al file wheel python in una pipeline di tabelle live Delta, è necessario aggiungere un mapping al databricks.yml
file se si usa Poetry ed è necessario aggiungere un %pip install
comando al notebook della pipeline, come indicato di seguito.
Se si utilizza Poesia, è necessario includere il mapping seguente artifacts
nel databricks.yml
file. Questo mapping esegue il poetry build
comando e usa il pyproject.toml
file che si trova nella stessa directory del databricks.yml
file:
artifacts:
default:
type: whl
build: poetry build
path: .
Nota
Il artifacts
mapping è facoltativo per setuptools
. Per impostazione predefinita, per setuptools
l'interfaccia della riga di comando di Databricks esegue il comando python3 setup.py bdist_wheel
e usa il setup.py
file che si trova nella stessa directory del databricks.yml
file. L'interfaccia della riga di comando di Databricks presuppone che sia già stato eseguito un comando, pip3 install --upgrade wheel setuptools
ad esempio per installare i wheel
pacchetti e setuptools
se non sono già installati.
Inoltre, il notebook della pipeline correlato deve includere un %pip install
comando per installare il file wheel python compilato. Vedere Librerie Python.