Ta kontakt
 Varighet 21 timer

Kursplan

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

Krav

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.

Antall deltakere


Pris per deltaker

Referanser (1)

Kommende kurs

Relaterte kategorier