Usare un file wheel python in un processo di Azure Databricks
Un file wheel Python è un modo standard per creare un pacchetto e distribuire i file necessari per eseguire un'applicazione Python. Usando l'attività wheel di Python, è possibile garantire un'installazione rapida e affidabile del codice Python nei processi di Azure Databricks. Questo articolo fornisce un esempio di creazione di un file wheel Python e di un processo che esegue l'applicazione inserita nel file wheel Python. Nel seguente esempio, si eseguirà quanto segue:
- Creare i file Python che definiscono un'applicazione di esempio.
- Aggregare i file di esempio in un file wheel Python.
- Creare un processo per eseguire il file wheel Python.
- Eseguire il processo e visualizzare i risultati.
Prima di iniziare
Per completare questo esempio, è necessario quanto segue:
Python3
I pacchetti Python
wheel
esetuptool
. È possibile usarepip
per installare questi pacchetti. Ad esempio, per installare questi pacchetti, è possibile eseguire il comando seguente:pip install wheel setuptools
Passaggio 1: Creare una directory locale per l'esempio
Creare una directory locale per contenere il codice di esempio e gli artefatti generati, ad esempio databricks_wheel_test
.
Passaggio 2: Creare lo script Python di esempio
L'esempio Python seguente è un semplice script che legge gli argomenti di input e li stampa. Copiare questo script e salvarlo in un percorso denominato my_test_code/__main__.py
nella directory creata nel passaggio precedente.
"""
The entry point of the Python Wheel
"""
import sys
def main():
# This method will print the provided arguments
print('Hello from my func')
print('Got arguments:')
print(sys.argv)
if __name__ == '__main__':
main()
Passaggio 3: Creare un file di metadati per il pacchetto
Il seguente file contiene i metadati che descrivono il pacchetto. Salvarlo in un percorso denominato my_test_code/__init__.py
nella directory creata nel passaggio 1.
__version__ = "0.0.1"
__author__ = "Databricks"
Passaggio 4: Creare il file wheel Python
La conversione degli artefatti Python in un file wheel Python richiede la specifica dei metadati del pacchetto, ad esempio il nome del pacchetto e i punti di ingresso. Lo script seguente definisce questi metadati.
Nota
L'oggetto entry_points
definito in questo script viene usato per eseguire il pacchetto nel flusso di lavoro di Azure Databricks. In ogni valore di entry_points
, il valore precedente =
(in questo esempio, run
) è il nome del punto di ingresso e viene usato per configurare l'attività wheel Python.
Salvare questo script in un file denominato
setup.py
nella radice della directory creata nel passaggio 1:from setuptools import setup, find_packages import my_test_code setup( name='my_test_package', version=my_test_code.__version__, author=my_test_code.__author__, url='https://databricks.com', author_email='john.doe@databricks.com', description='my test wheel', packages=find_packages(include=['my_test_code']), entry_points={ 'group_1': 'run=my_test_code.__main__:main' }, install_requires=[ 'setuptools' ] )
Passare alla directory creata nel passaggio 1 ed eseguire il comando seguente per creare un pacchetto del codice nella distribuzione wheel Python:
python3 setup.py bdist_wheel
Questo comando crea il file wheel Python e lo salva nel file dist/my_test_package-0.0.1-py3.none-any.whl
nella directory.
Passaggio 5. Creare un processo di Azure Databricks per eseguire il file wheel Python
Passare alla pagina di destinazione di Azure Databricks ed eseguire una delle operazioni seguenti:
- Nella barra laterale, fare clic su Flussi di lavoro e quindi .
- Nella barra laterale, fare clic su Nuovo e selezionare Processo dal menu.
Nella finestra di dialogo delle attività visualizzata nella scheda Attività sostituire Aggiungi un nome per il processo... con il nome del processo, ad esempio
Python wheel example
.In Nome attività immettere un nome per l'attività, ad esempio
python_wheel_task
.In Tipo selezionare Python Wheel.
In Nome pacchetto immettere
my_test_package
. Il valore Nome pacchetto è il nome del pacchetto Python da importare. In questo esempio, il nome del pacchetto è il valore assegnato al parametroname
insetup.py
.In Punto di ingresso immettere
run
. Il punto di ingresso è uno dei valori specificati nella raccoltaentry_points
nello scriptsetup.py
. In questo esempio,run
è l'unico punto di ingresso definito.In Calcolo selezionare un cluster di processi esistente o Aggiungi nuovo cluster di processi.
Fare clic su Aggiungi in Librerie dipendenti. Nella finestra di dialogo Aggiungi libreria dipendente, con Area di lavoro selezionata, trascinare il file
my_test_package-0.0.1-py3-none-any.whl
creato nel passaggio 4 nell'area di dialogo Rilascia file qui .Fare clic su Aggiungi.
In Parametri selezionare Argomenti posizionali o Argomenti di parola chiave per immettere la chiave e il valore di ogni parametro. Entrambi gli argomenti posizionali e di parole chiave vengono passati all'attività della rotellina Python come argomenti della riga di comando.
- Per immettere argomenti posizionali, immettere i parametri come matrice di stringhe in formato JSON, ad esempio :
["first argument","first value","second argument","second value"]
. - Per immettere argomenti di parole chiave, fare clic su + Aggiungi e immettere una chiave e un valore. Fare di nuovo clic su + Aggiungi per immettere altri argomenti.
- Per immettere argomenti posizionali, immettere i parametri come matrice di stringhe in formato JSON, ad esempio :
Fare clic su Crea token.
Passaggio 6: Eseguire il processo e visualizzare i dettagli dell'esecuzione del processo
Fare clic su per eseguire il flusso di lavoro. Per visualizzare i dettagli dell'esecuzione, fare clic su Visualizza esecuzione nella finestra popup Esecuzione attivata oppure fare clic sul collegamento nella colonna Ora di inizio per l'esecuzione nella visualizzazioneesecuzioni del processo.
Al termine dell'esecuzione, l'output viene visualizzato nel pannello Output, inclusi gli argomenti passati all'attività.
Passaggi successivi
Per altre informazioni sulla creazione e l'esecuzione di processi di Azure Databricks, vedere Pianificare e orchestrare i flussi di lavoro.