Eseguire attività Python Wheel in contenitori Docker personalizzati in Databricks

Eseguire Python Wheel in Docker in Databricks.

<h2 id="un-tutorial-passo-passo-per-creare-e-eseguire-task Python Wheel su immagini Docker personalizzate in Databricks (con Poetry e Typer CLI)

Foto di Lluvia Morales su Unsplash

I data engineer progettano e costruiscono pipeline per eseguire carichi di lavoro ETL in modo che i dati possano essere utilizzati a valle per risolvere problemi aziendali. In Databricks, per una tale pipeline, di solito si inizia creando un cluster, un notebook/script, e si scrive del codice Spark. Una volta che si ha un prototipo funzionante, lo si rende pronto per la produzione in modo che il codice possa essere eseguito come job Databricks, ad esempio utilizzando l’API REST. Per Databricks, questo significa che di solito deve già esserci un notebook/script Python nel file system di Databricks O che un repository Git remoto sia collegato allo spazio di lavoro*. Ma cosa succede se non si desidera fare nessuna delle due cose? Esiste un altro modo per eseguire uno script Python come job Databricks senza caricare alcun file nello spazio di lavoro di Databricks o collegarsi a un repository Git remoto: Python wheel tasks con punti di ingresso dichiarati e Databricks Container Services consentono di avviare job che utilizzeranno immagini Docker da un registro di container.

Pertanto, questo tutorial ti mostrerà come fare esattamente questo: eseguire job Python (Python wheel tasks) in immagini Docker personalizzate in Databricks.

*sia un processo di sincronizzazione carica i file Git nello spazio di lavoro di Databricks prima dell’esecuzione del codice, oppure viene fornito il riferimento remoto git al notebook/script per l’esecuzione del job

Perché vorresti farlo?

Potresti avere una filosofia di “costruisci, distribuisci ed esegui ovunque”, quindi potresti non essere soddisfatto del modo convenzionale di utilizzare DataBricks.

Fammi spiegare.

Databricks suggerisce alcune tecniche CI/CD per la sua piattaforma.

La integrazione continua e il rilascio continuo/deploy continuo (CI/CD) si riferiscono al processo di sviluppo e distribuzione del software in cicli brevi e frequenti attraverso l’uso di pipeline automatizzate.

Tipicamente, un commit al branch predefinito o un rilascio avvia una pipeline per il linting, il testing, ecc. e alla fine porta a un’azione che interagisce con Databricks. Questo può essere una chiamata all’API REST per avviare un job…