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