Course Code: pysprkub
Duration: 21 hours
Prerequisites:
Deltakerne bør ha:
- Praktisk erfaring med Python-programmering, inkludert funksjoner, moduler og grunnleggende objektorienterte konsepter.
- Grunnleggende til mellomnivå erfaring med arbeid i Pandas og tabellbaserte databehandlingsarbeidsflyter.
- Grunnleggende kjennskap til PySpark og Spark DataFrames, inkludert lesing av data, transformasjoner, handlinger, koblinger (joins) og aggregeringer.
- Generell forståelse av SQL og databehandlingskonsepter, inkludert filtrering, gruppering og sammenkobling av datasamlinger.
- Grunnleggende kjennskap til Docker og Kubernetes-konsepter, som konteiner, bilder og pods. Kunnskap i Kubernetes-administrasjon kreves ikke.
- Grunnleggende forståelse vanlige dataformater som CSV, JSON og Parquet.
Deltakerne behøver ikke å være Kubernetes-administratorer eller infrastrukturere. Kurset fokuserer på hvordan dataingeniører, utviklere og datasientister kan forstå og optimalisere sine Spark-arbeidsflyter som kjører på Kubernetes fra et applikasjons- og konfigurasjonsperspektiv.
Målgruppe
Dette kurset er designet for fagfolk som utvikler, vedlikeholder eller optimaliserer databehandlings- og maskinlæringsarbeidsflyter med bruk av Python og Spark i sky- eller konteinerbaserte miljøer.
Det er spesielt egnet for:
- Dataingeniører som arbeider med PySpark, distribuert databehandling og ETL-piper.
- Datasientister som behandler store datasets eller kjører maskinlæringsarbeidsflyter med Spark, Pandas eller Polars.
- Python-utviklere som jobber med dataintensive applikasjoner og ønsker å forbedre minneeffektivitet og behandlingsytelse.
- Maskinlæringsingeniører som håndterer forberedelse av data og modelltrening på felles Kubernetes- eller skymiljøer.
- Analysingeniører som arbeider med store datasets og søker å forbedre databehandlingseffektivitet.
- DevOps-, plattform- og skyingeniører som støtter Spark-arbeidsflyter på Kubernetes og trenger å forstå hvordan applikasjonskonfigurasjon påvirker ressursbruk og ytelse.
- Tekniske ledere og løsningsarkitekter som er involvert i å designe eller optimalisere moderne databehandlingsplattform.
Overview:
Dette tre-dagers praktiske kurset fokuserer på å bygge og optimalisere effektive databehandlingsarbeidsflyter ved hjelp av PySpark, Pandas og Polars i Kubernetes-baserte miljøer.
Deltakerne vil utvikle en praktisk forståelse av hvordan Spark-applikasjoner kjører på Kubernetes, og hvordan konfigurasjonsvalg på applikasjonsnivå påvirker ytelse, skalerbarhet, ressursforbruk og kostnader. Kurset dekker viktige optimaliseringsområder, inkludert executor-størrelse, minneallokering, dynamisk allokering, partisjoneringsstrategier, shuffle-opptreden, problemer med små filer og effektiv Parquet-behandling.
Kurset adresserer også vanlige utfordringer ved bruk av Pandas, inkludert minnebegrensninger og minnefeil (out-of-memory), og introducerer Polars som et høytytende alternativ for utvalgte databehandlingsoppgaver. Gjennom praktiske øvelser vil deltakerne diagnostisere ytelses- og minneproblemer, sammenligne ulike konfigurasjonsstrategier og anvende optimaliseringsteknikker på realistiske ETL- og maskinlærings scenarioer.
Fokus i hele kurset ligger på praktisk beslutningstaking: å forstå hvordan man identifiserer flaskehalser, velger riktig verktøy, konfigurerer Spark effektivt og balanserer ytelse mot infrastrukturressursforbruk og kostnader.
Course Outline:
Modul 1: Big Data og Spark-grunnlag
- oversikt over Big Data-økosystemet og Sparks rolle i moderne dataplattformer
- Forståelse av Spark-arkitektur: driver, executorer, klyngeadministrator, lat evaluering (lazy evaluation), DAG og eksekveringsplanlegging
- Forskjeller mellom RDD- og DataFrame-APIer og når man skal bruke hver tilnærming
- Oppretting og konfigurasjon av SparkSession og forståelse av grunnleggende applikasjonskonfigurasjon
Modul 2: PySpark DataFrames
- Lesing og skriving av data fra enterprise-kilder og formater: CSV, JSON, Parquet og Delta
- Arbeid med PySpark DataFrames: transformasjoner, handlinger, kolonneuttrykk, filtrering, koblinger og aggregeringer
- Implementering av avanserte operasjoner som vindusfunksjoner, håndtering av tidsstempleter og arbeid med nøstet data
- Anvendelse av datakvalitetskontroller og skriving av gjenbrukbar, vedlikeholdbar PySpark-kode
Modul 3: Kubernetes- og Docker-grunnlag for brukere av Spark
- Forståelse av hvordan Docker-bilder og Kubernetes-pods relaterer seg til Spark driver- og executor-prosesser – et konseptuelt perspektiv for klyngebrukere, ikke administratører
- Forståelse av hva som skjer når en Spark-jobb kjører på Kubernetes: pod-innscheduling, ressursforespørsler og begrensninger, og hvordan sessionsinnstillinger kartlegges på dem
- Forståelse av hva du kontrollerer via Spark-sesjonsparametere i motsetning til hva plattformteamet kontrollerer via klyngeprovisjonering – og hvorfor denne grensen er viktig for justering
- Praktisk øvelse: Inspeksjon av en kjørende Spark-on-Kubernetes-jobb i sandbox-klyngen og identifisering av driver- og executor-pods
Modul 4: Spark Sessions konfigurasjon på Kubernetes – Dypdykk
- Forståelse av antall executorer versus executor-størrelse: minne-mot-kjerne-trade-offs og hvordan man resonnerer om dem
- Minneallokering for driver og executorer, minne-overhead, og hvordan dette oversettes til pod-ressurser
- Dynamisk allokering: hvordan den oppfører seg på Kubernetes, når den sparer ressurser og når den ikke gjør det
- Praktisk øvelse: Kjør samme jobb under ulike executor- og kjernekonfigurasjoner og sammenlån kjøretid og ressursbruk
Modul 5: Skalerbarhetsopptreden og kostnadsoptimalisering
- Forståelse av hvordan tilføyelse eller fjerning av noder endrer jobbopptreden, fullførings tid og ressursforbruk
- Sammenligning av mange små executorer versus færre store: ytelses- og kostnadstrade-offs
- Shuffle-opptreden og justering av shuffle-partisjoner, inkludert estimering av kostnadspåvirkning av konfigurasjonsvalg
- Praktisk øvelse: Skaler sandbox-klyngen fra fem til ti noder og observer effekten på jobbfullførings tid og ressursforbruk
Modul 6: Effektiv datainnhenting og partisjonering
- Forståelse av problemet med små filer: hvorfor kilder fordelt over mange Parquet-filer på 1–5 MB forringer ytelsen og forvrenger partisjonering
- Strategier for ompartisjonering og sammenslåing (coalescing)
- Kontroll av partisjonsstørrelse ved lesing og ved skriving
- Skrive Parquet effektivt for å unngå å gjenopprette problemet med små filer nedstrøms
- Praktisk øvelse: Last inn et dataset bestående av mange små Parquet-partisjoner, anvend ulike ompartisjoneringsstrategier og sammenlån ytelsen før og etter optimalisering
Modul 7: Minnehåndtering og feildiagnostikk i Pandas
- Forståelse av rotårsakene til minnefeil (out-of-memory) i Pandas og gjenkjenning av symptomer
- Anvendelse av minneeffektive konverteringsmønstre mellom Spark og Pandas
- Unngåelse av minneeksplosjoner ved skriving av store datasets til CSV
- Bruk av stykkevis bearbeiding (chunked processing) og dtype-optimalisering for begrenset miljøer
- Praktisk øvelse: Reprodusér et typisk Pandas minnefeil-skenario og løs det ved hjelp av stykkevis bearbeiding og dtype-optimalisering
Modul 8: Polars som et komplementært verktøy
- Plassering av Polars i forhold til Pandas: ytelsesegenskaper, lat evaluering og minneopptreden
- Forståelse av hvor Polars passer sammen med PySpark og Pandas i moderne skydata-stacks og migrasjonsveier, inkludert AWS-miljøer
- Praktisk øvelse: Skriv om en Pandas-tung transformasjon i Polars og sammenlån minnebruk og behandlingshastighet
Modul 9: Anvendelse av optimalisering på ETL- og ML-arbeidsflyter
- Anvendelse av prinsipper for konfigurasjon, partisjonering og minnehåndtering over en realistisk ETL-pipe
- Forståelse av optimaliseringsvurderinger spesifikke for maskinlæringsarbeidsflyter som kjører på samme klynge
- Anvendelse av en praktisk justeringsworkflow for systematisk å diagnostisere kostnads- og ytelsesproblemer
- Praktisk øvelse: Fullfør et end-to-end mini-prosjekt som kombinerer datainnlasting, transformasjon og et enkelt steg for modelltrening, der deltakerne justerer Spark-konfigurasjonen selv
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