Course Code: pysprkub
Duration: 21 hours
Prerequisites:
I partecipanti dovrebbero possedere:
- Esperienza pratica nella programmazione Python, incluse funzioni, moduli e concetti base della programmazione orientata agli oggetti.
- Esperienza base o intermedia nel lavoro con Pandas e flussi di lavoro per l'elaborazione di dati tabellari.
- Familiarità di base con PySpark e Spark DataFrames, inclusa la lettura dei dati, trasformazioni, azioni, join e aggregazioni.
- Una conoscenza generale di SQL e concetti di elaborazione dati, inclusa la filtrazione, il raggruppamento e l'unione di set di dati.
- Familiarità di base con concetti Docker e Kubernetes, come container, immagini e pod. Non è richiesta esperienza nella gestione di Kubernetes.
- Una conoscenza di base dei formati di dati comuni come CSV, JSON e Parquet.
I partecipanti non devono essere amministratori Kubernetes o specialisti infrastrutturali. Il corso si concentra su come data engineer, sviluppatori e data scientist possano comprendere e ottimizzare i propri carichi di lavoro Spark eseguiti su Kubernetes, da una prospettiva applicativa e di configurazione.
Pubblico di riferimento
Questo corso è progettato per professionisti che sviluppano, mantengono o ottimizzano carichi di lavoro per l'elaborazione dati e il machine learning utilizzando Python e Spark in ambienti cloud o containerizzati.
È particolarmente adatto per:
- Data Engineer che lavorano con PySpark, elaborazione dati distribuita e pipeline ETL.
- Data Scientist che elaborano grandi set di dati o eseguono carichi di lavoro di machine learning con Spark, Pandas o Polars.
- Sviluppatori Python che lavorano con applicazioni ad alto utilizzo di dati e desiderano migliorare l'efficienza della memoria e le prestazioni di elaborazione.
- Machine Learning Engineer che gestiscono carichi di lavoro per la preparazione dei dati e l'addestramento dei modelli su ambienti Kubernetes o cloud condivisi.
- Analytics Engineer che lavorano con grandi set di dati e cercano di migliorare l'efficienza dell'elaborazione dei dati.
- Ingegneri DevOps, di Piattaforma e Cloud che supportano carichi di lavoro Spark su Kubernetes e devono comprendere come la configurazione a livello applicativo influenzi l'utilizzo delle risorse e le prestazioni.
- Lead Tecnici e Architetti di Soluzione coinvolti nella progettazione o ottimizzazione di piattaforme moderne per l'elaborazione dati.
Overview:
Questo corso pratico di tre giorni si concentra sulla creazione e ottimizzazione di carichi di lavoro per l'elaborazione dati efficienti utilizzando PySpark, Pandas e Polars in ambienti basati su Kubernetes.
I partecipanti acquisiranno una comprensione pratica di come le applicazioni Spark vengano eseguite su Kubernetes e di come le decisioni di configurazione a livello applicativo influenzino le prestazioni, la scalabilità, il consumo delle risorse e i costi. Il corso copre aree chiave di ottimizzazione, tra cui la dimensionamento degli esecutori, l'allocazione della memoria, l'allocazione dinamica, le strategie di partizionamento, il comportamento dello shuffle, i problemi legati ai file di piccole dimensioni e l'elaborazione efficiente di Parquet.
Il corso affronta anche le sfide comuni incontrate nell'uso di Pandas, inclusi i limiti di memoria e i guasti per esaurimento della memoria (out-of-memory), e introduce Polars come alternativa ad alte prestazioni per specifici carichi di lavoro di elaborazione dati. Attraverso esercizi pratici, i partecipanti diagnosticheranno problemi di prestazioni e memoria, confronteranno diverse strategie di configurazione e applicheranno tecniche di ottimizzazione a scenari realistici di ETL e machine learning.
L'accento è posto su decisioni pratiche: comprendere come identificare i colli di bottiglia, selezionare lo strumento appropriato, configurare Spark in modo efficiente e bilanciare le prestazioni con il consumo delle risorse infrastrutturali e i costi.
Course Outline:
Modulo 1: Fondamenti di Big Data e Spark
- Panoramica dell'ecosistema Big Data e il ruolo di Spark nelle piattaforme di dati moderne
- Comprensione dell'architettura di Spark: driver, esecutori, cluster manager, valutazione pigra, DAG e pianificazione dell'esecuzione
- Differenze tra le API RDD e DataFrame e quando utilizzare ciascuno dei due approcci
- Crea e configurazione di SparkSession e comprensione dei fondamenti della configurazione dell'applicazione
Modulo 2: PySpark DataFrames
- Lettura e scrittura di dati da fonti e formati aziendali: CSV, JSON, Parquet e Delta
- Lavoro con PySpark DataFrames: trasformazioni, azioni, espressioni di colonna, filtraggio, join e aggregazioni
- Implementazione di operazioni avanzate come le funzioni finestra, la gestione dei timestamp e il lavoro con dati annidati
- Applicazione di controlli di qualità dei dati e scrittura di codice PySpark riutilizzabile e mantenibile
Modulo 3: Fondamenti di Kubernetes e Docker per utenti Spark
- Comprensione di come le immagini Docker e i pod Kubernetes si relazionino ai processi driver e esecutori di Spark — una visione concettuale per i consumatori del cluster, non per gli amministratori
- Comprensione di ciò che accade quando un job Spark viene eseguito su Kubernetes: pianificazione dei pod, richieste e limiti delle risorse, e come le impostazioni della sessione si mappino su di essi
- Comprensione di ciò che si controlla attraverso i parametri della sessione Spark rispetto a ciò che il team di piattaforma controlla attraverso il provisioning del cluster — e perché questo confine sia importante per il tuning
- Esercizio pratico: Ispezionare un job Spark-on-Kubernetes in esecuzione nel cluster sandbox e identificare i pod driver ed esecutori
Modulo 4: Configurazione della sessione Spark su Kubernetes — Approfondimento
- Comprensione del numero di esecutori rispetto alla loro dimensione: compromesso tra memoria e core e come ragionare su di essi
- Allocazione della memoria per driver ed esecutori, overhead di memoria, e come questi si traducano in risorse dei pod
- Allocazione dinamica: come si comporta su Kubernetes, quando risparmia risorse e quando no
- Esercizio pratico: Eseguire lo stesso job con diverse configurazioni di esecutori e core e confrontare tempo di esecuzione e utilizzo delle risorse
Modulo 5: Comportamento di scalabilità e ottimizzazione dei costi
- Comprensione di come l'aggiunta o la rimozione di nodi cambi il comportamento del job, il tempo di completamento e il consumo di risorse
- Confronto tra molti esecutori piccoli e pochi grandi: compromessi tra prestazioni e costi
- Comportamento dello shuffle e tuning delle partizioni di shuffle, inclusa la stima dell'impatto sui costi delle scelte di configurazione
- Esercizio pratico: Ridimensionare il cluster sandbox da cinque a dieci nodi e osservare l'effetto sul tempo di completamento del job e sul consumo di risorse
Modulo 6: Ingestione dati efficiente e partizionamento
- Comprensione del problema dei file di piccole dimensioni: perché le fonti divise in molti file Parquet da 1-5 MB degradino le prestazioni e distorcano il partizionamento
- Strategie di ripartizionamento e coalescenza
- Controllo delle dimensioni delle partizioni in lettura e in scrittura
- Scrittura efficiente di Parquet per evitare la ricreazione del problema dei file di piccole dimensioni a valle
- Esercizio pratico: Caricare un set di dati composto da molte partizioni Parquet piccole, applicare diverse strategie di ripartizionamento e confrontare le prestazioni prima e dopo l'ottimizzazione
Modulo 7: Gestione della memoria in Pandas e diagnosi dei guasti
- Comprensione delle cause profonde degli errori out-of-memory in Pandas e riconoscimento dei sintomi
- Applicazione di schemi di conversione efficienti in termini di memoria tra Spark e Pandas
- Evitare esplosioni di memoria quando si scrivono grandi set di dati in CSV
- Utilizzo dell'elaborazione in blocchi (chunked processing) e dell'ottimizzazione dei dtype per ambienti vincolati
- Esercizio pratico: Riprodurre un tipico scenario out-of-memory di Pandas e risolverlo utilizzando chunking e ottimizzazione dei dtype
Modulo 8: Polars come strumento complementare
- Posizionamento di Polars rispetto a Pandas: caratteristiche di prestazioni, valutazione pigra e comportamento della memoria
- Comprensione di dove Polars si integri con PySpark e Pandas nei moderni stack di dati cloud e nelle roadmap di migrazione, inclusi gli ambienti AWS
- Esercizio pratico: Riscrivere una trasformazione pesante in Pandas in Polars e confrontare l'utilizzo della memoria e la velocità di elaborazione
Modulo 9: Applicazione dell'ottimizzazione a carichi di lavoro ETL e ML
- Applicazione dei principi di configurazione, partizionamento e gestione della memoria a una pipeline ETL realistica
- Comprensione delle considerazioni di ottimizzazione specifiche per i carichi di lavoro di machine learning che girano sullo stesso cluster
- Applicazione di un workflow di tuning pratico per diagnosticare sistematicamente problemi di costi e prestazioni
- Esercizio pratico: Completare un mini-progetto end-to-end che combina caricamento dati, trasformazione e un semplice passaggio di addestramento del modello, con i partecipanti che regolano la configurazione di Spark autonomamente
Sites Published:
United Arab Emirates - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Qatar - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Egypt - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Saudi Arabia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
South Africa - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Brasil - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars
Canada - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
中国 - 基于Kubernetes使用PySpark、Pandas和Polars实现高效数据处理
香港 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
澳門 - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
台灣 - 使用PySpark、Pandas和Polars在Kubernetes上進行高效資料處理
USA - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Österreich - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes
Schweiz - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes
Deutschland - Effiziente Datenverarbeitung mit PySpark, Pandas und Polars auf Kubernetes
Czech Republic - Efektivní zpracování dat v Kubernetes pomocí PySpark, Pandas a Polars
Denmark - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Estonia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Finland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Greece - Αποτελεσματική Επεξεργασία Δεδομένων σε Kubernetes με PySpark, Pandas & Polars
Magyarország - Hatékony adatfeldolgozás Kubernetesben PySpark, Pandas és Polars segítségével
Ireland - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Luxembourg - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Latvia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
España - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Italia - Elaborazione dati efficiente su Kubernetes con PySpark, Pandas e Polars
Lithuania - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Nederland - Efficiënte verwerking van data op Kubernetes met PySpark, Pandas & Polars
Norway - Effektiv databehandling på Kubernetes med PySpark, Pandas og Polars
Portugal - Processamento Eficiente de Dados no Kubernetes com PySpark, Pandas e Polars
România - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars
Sverige - Effektiv datahantering med PySpark, Pandas och Polars på Kubernetes
Türkiye - Kubernetes Ortamında PySpark, Pandas ve Polars ile Verimli Veri İşleme
Malta - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Belgique - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars
France - Traitement efficace des données sur Kubernetes avec PySpark, Pandas et Polars
日本 - KubernetesにおけるPySpark、Pandas、Polarsによる効率的なデータ処理
Australia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Malaysia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
New Zealand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Philippines - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Singapore - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Thailand - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Vietnam - Xử lý dữ liệu hiệu quả trên Kubernetes bằng PySpark, Pandas & Polars
India - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Argentina - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Chile - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Costa Rica - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Ecuador - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Guatemala - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Colombia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
México - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Panama - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Peru - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Uruguay - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Venezuela - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Polska - Skuteczne przetwarzanie danych w Kubernetesie z wykorzystaniem PySpark, Pandas i Polars
United Kingdom - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
South Korea - PySpark, Pandas 및 Polars를 활용한 Kubernetes에서 효율적인 데이터 처리
Pakistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Sri Lanka - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Bulgaria - Ефективна обработка на данни в Kubernetes с PySpark, Pandas и Polars
Bolivia - Procesamiento de datos eficiente en Kubernetes con PySpark, Pandas y Polars
Indonesia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Kazakhstan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Moldova - Procesare eficientă a datelor pe Kubernetes cu PySpark, Pandas & Polars
Morocco - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Tunisia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Kuwait - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Oman - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Slovakia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Kenya - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Nigeria - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Botswana - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Slovenia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Croatia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Serbia - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Bhutan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Nepal - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
Uzbekistan - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars
US Government - Efficient Data Processing on Kubernetes with PySpark, Pandas & Polars