Condividi tramite


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 e setuptool. È possibile usare pip 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.

  1. 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'
      ]
    )
    
  2. 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

  1. Passare alla pagina di destinazione di Azure Databricks ed eseguire una delle operazioni seguenti:

    • Nella barra laterale, fare clic su Icona Flussi di lavoro Flussi di lavoro e quindi Pulsante Crea processo.
    • Nella barra laterale, fare clic su Nuova icona Nuovo e selezionare Processo dal menu.
  2. 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.

  3. In Nome attività immettere un nome per l'attività, ad esempio python_wheel_task.

  4. In Tipo selezionare Python Wheel.

  5. 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 parametro name in setup.py.

  6. In Punto di ingresso immettere run. Il punto di ingresso è uno dei valori specificati nella raccolta entry_points nello script setup.py. In questo esempio, run è l'unico punto di ingresso definito.

  7. In Calcolo selezionare un cluster di processi esistente o Aggiungi nuovo cluster di processi.

  8. 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 .

  9. Fare clic su Aggiungi.

  10. 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.
  11. Fare clic su Crea token.

Passaggio 6: Eseguire il processo e visualizzare i dettagli dell'esecuzione del processo

Fare clic su Pulsante Esegui ora 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.