Trasformazioni Map, Filter e CombinePerKey nella scrittura di pipeline Apache Beam con esempi
Trasformazioni Map, Filter e CombinePerKey nella scrittura di pipeline Apache Beam
Pratichiamo con dei Dati Reali
Apache Beam sta diventando sempre più popolare come modello di programmazione unificato per pipeline di elaborazione di grandi quantità di dati efficienti e portatili. Può gestire sia dati batch che dati in streaming. Ecco da dove deriva il nome. Beam è la combinazione delle parole “Batch” e “Stream”:
B(da Batch) + eam(da stream)= Beam
La portabilità è anche una grande caratteristica. Devi solo concentrarti sull’esecuzione della pipeline e può essere eseguita ovunque, come Spark, Flink, Apex o Cloud Dataflow. Non è necessario modificare la logica o la sintassi per farlo.
In questo articolo, ci concentreremo sull’apprendimento di come scrivere alcune pipeline ETL utilizzando esempi. Proveremo alcune operazioni di trasformazione utilizzando un buon dataset e speriamo che troverai utili tutte queste operazioni di trasformazione anche nel tuo lavoro.
- GPT privato Ottimizza LLM sui dati aziendali
- Usa i modelli GPT per generare dati di testo per addestrare modelli di apprendimento automatico
- Impatto ambientale dell’AI generativa ubiqua
Sentiti libero di scaricare questo dataset pubblico e seguire insieme:
Dati di Vendita di Esempio | Kaggle
È stato utilizzato un notebook di Google Colab per questo esercizio. Quindi, l’installazione è molto facile. Basta usare questa riga di codice:
!pip install --quiet apache_beam
Dopo aver completato l’installazione, ho creato una directory per questo esercizio chiamata ‘data’:
mkdir -p data
Andiamo a tuffarci nell’argomento di oggi, ovvero le operazioni di trasformazione. Per iniziare, lavoreremo su una pipeline molto semplice che consiste semplicemente nella lettura del file CSV e nella scrittura su un file di testo.
Questo non è così semplice come il metodo read_csv() di Pandas. Richiede un’operazione di coder(). Prima è stata definita una classe CustomCoder() che codifica prima gli oggetti in stringhe di byte, quindi decodifica i byte nei rispettivi oggetti e infine specifica se questo coder è garantito per codificare i valori in modo deterministico. Si prega di consultare la documentazione qui.
Se questa è la tua prima pipeline, per favore fai attenzione alla sintassi per una pipeline. Dopo la classe CustomCoder() c’è la pipeline più semplice. Abbiamo iniziato creando la pipeline vuota come ‘p1’ prima. Quindi abbiamo scritto la pipeline ‘sales’ dove abbiamo prima letto il file CSV dalla cartella dei dati che abbiamo creato in precedenza. In Apache Beam, ogni operazione di trasformazione nella…