Kurzusleírás
1. modul: Nagy adathalmazok és Spark alapok
- A Big Data ökoszisztéma áttekintése és a Spark szerepe a modern adatplatformokon
- A Spark architektúra megértése: driver, executorok, klüstermenedzser, lazy evaluation, DAG és végrehajtási tervezés
- Különbségek az RDD és a DataFrame API között, és mikor melyik megközelítést érdemes használni
- SparkSession létrehozása és konfigurálása, valamint az alkalmazás konfiguráció alapjainak megértése
2. modul: PySpark DataFrames
- Adatok beolvasása és írása vállalati forrásokból és formátumokból: CSV, JSON, Parquet és Delta
- Műveletek PySpark DataFrame-ekkel: átalakítások, műveletek, oszlop-kifejezések, szűrés, csatlakoztatások és aggregálás
- Haladott műveletek implementálása, mint pl. ablakfüggvények, időbélyegek kezelése és beágyazott adatokkal való munka
- Adatminőségi ellenőrzések alkalmazása és újrahasznosítható, karbantartható PySpark kód írása
3. modul: Kubernetes és Docker alapok Spark felhasználóknak
- Megértés, hogyan kapcsolódnak a Docker képek és a Kubernetes podok a Spark driver és executor folyamatokhoz – a klüster felhasználóinak, nem az adminisztrátoroknak szánt koncepciális nézet
- Megértés, mi történik, amikor egy Spark feladat fut a Kubernetesben: pod ütemezés, erőforrás-kérések és korlátok, valamint hogyan tükröződnek ezek a session beállításokban
- Megértés, mit irányíthat a Spark session paramétereken keresztül, és mit a platformcsapat a klüster-provisionálás során – és miért fontos ez a határvonal a tuning szempontjából
- Gyakorlati feladat: Vizsgálja meg egy futó Spark-on-Kubernetes feladatot a sandbox klüsteren, és azonosítsa a driver és executor podokat
4. modul: Spark session konfiguráció Kubernetesben – Részletes beásválás
- Az executorok számának és méretének megértése: memória- és magok-arány trade-off, és hogyan gondolkodjunk erről
- Driver és executor memória-allokáció, memória overhead, és hogyan alakulnak ezek pod erőforrásokká
- Dinamikus allokáció: hogyan viselkedik a Kubernetesben, mikor spórol erőforrást, és mikor nem
- Gyakorlati feladat: Futtassa ugyanazt a feladatot különböző executor és mag konfigurációkkal, és hasonlítsa össze a futástIdőt és az erőforrás-használatot
5. modul: Méretezési viselkedés és költség-optimalizálás
- Megértés, hogyan változik a feladat viselkedése, befejezési ideje és erőforrás-fogyasztása csomópontok hozzáadásával vagy eltávolításával
- Sok kis executor versus kevés nagy executor: teljesítmény és költség trade-offok
- Shuffle viselkedés és shuffle partíció tuning, beleértve a konfigurációs döntések költség-terjedelmének becslését
- Gyakorlati feladat: Skálázza a sandbox klütert ötől tíz csomópontig, és figyelje meg a hatást a feladat befejezési idejére és az erőforrás-fogyasztásra
6. modul: Hatékony adatbevitel és partícionálás
- A kisfájlok probléma megértése: miért romlik a teljesítmény, ha az adatforrások sok 1–5 MB-os Parquet fájlra tagolva vannak, és hogyan torzítja ez a partícionálást
- Repartícionálási és coalesce stratégiák
- Partícióméretek kontrollja beolvasáskor és írásnál
- Hatékony Parquet írás, hogy elkerüljük a kisfájlok problémájának újbóli előidézését lefelé a láncban
- Gyakorlati feladat: Töltsön be egy adathalmazt, amely sok kis Parquet partícióból áll, alkalmazzon különböző repartícionálási stratégiákat, és hasonlítsa össze a teljesítményt optimalizálás előtt és után
7. modul: Pandas memória-kezelés és hiba-diagnosztika
- A Pandas OOM hiba gyökérokkainak megértése és a tünetek felismerése
- Memória-hatékonyságú konverziós minták alkalmazása Spark és Pandas között
- Memória-felfújás elkerülése nagy adathalmazok CSV-be írásakor
- Chunk-elt feldolgozás és dtype optimalizálás korlátozott környezetekben
- Gyakorlati feladat: Reprodukáljon egy tipikus Pandas OOM jelenetet, és oldja meg chunkolással és dtype optimalizálással
8. modul: Polars kiegészítő eszközként
- A Polars pozicionálása a Pandasszal szemben: teljesítménykarakterisztikák, lazy evaluation és memória-viselkedés
- Megértés, hová illeszkedik a Polars a PySpark és Pandas mellé a modern felhő-adatstackekben és a migrációs útvonalakon, beleértve az AWS környezeteket is
- Gyakorlati feladat: Írja újra egy Pandas-fókuszú átalakítást Polars-szal, és hasonlítsa össze a memória-használatot és a feldolgozási sebességet
9. modul: Optimalizálás alkalmazása ETL és ML munkafolyamatokban
- Konfigurációs, partícionálási és memória-kezelési elvek alkalmazása egy realisztikus ETL csővezetéken átívelően
- Optimalizálási szempontok megértése, amelyek specifikusak a gépi tanulási munkafolyamatokhoz, amelyek ugyanazon a klüsteren futnak
- Gyakorlati tuning munkafolyamat alkalmazása a költség- és teljesítményproblémák rendszeres diagnosztizálásához
- Gyakorlati feladat: Fejezze be egy végponttól-végpontig mini-projektet, amely adatbetöltést, átalakítást és egy egyszerű modellbetanítási lépést tartalmaz, ahol a résztvevők önmagukkal tuningolják a Spark konfigurációt
Követelmények
Az elvárások a résztvevőkkel szemben:
- Gyakorlati tapasztalat a Python programozásban, beleértve a függvényeket, modulokat és az alapvető objektumorientált fogalmakat.
- Alapszintű vagy középhaladó szintű tapasztalat a Pandas használatában és az asztalos adatfeldolgozási munkafolyamatokban.
- Alapszintű ismeret a PySpark és a Spark DataFrame működésével kapcsolatban, beleértve az adatok beolvasását, átalakításokat, műveleteket, csatlakoztatásokat és aggregálásokat.
- Általános ismeret a SQL és az adatfeldolgozási fogalmakról, beleértve a szűrést, csoportosítást és az adathalmazok csatlakoztatását.
- Alapszintű ismeret a Docker és Kubernetes fogalmokról, például a konténerekről, a képekről és a podokról. Nem szükséges Kubernetes-adminisztrációs tapasztalat.
- Alapvető megértése a gyakori adatformátumoknak, mint például a CSV, JSON és Parquet.
A résztvevőknek nem kell Kubernetes-adminisztrátoroknak vagy infrastruktúra-specialistáknak lenniük. A tanfolyam arra fókuszál, hogy az adatmérnökök, fejlesztők és adattudósok megértsék és optimalizálhassák a Kubernetesben futó Spark munkafolyamataikat az alkalmazás és a konfiguráció szempontjából.
Célközönség
Ez a tanfolyam azoknak a szakembereknek készült, akik Pythonnal és Sparkkal fejlesztnek, karbantartanak vagy optimalizálnak adatfeldolgozási és gépi tanulási munkafolyamatokat felhő- vagy konténer-alapú környezetekben.
Különösen alkalmas a következőknek:
- Adatmérnökök PySparkkal, elosztott adatfeldolgozással és ETL csővezetékekkel foglalkozva.
- Adattudósok, akik nagy adathalmazokat dolgoznak fel, vagy Sparkkal, Pandasszal vagy Polars-szal futtatnak ML feladatokat.
- Python fejlesztők, akik adatintenzív alkalmazásokon dolgoznak, és javítani kívánják a memória-hatékonyságot és a feldolgozási teljesítményt.
- Gépi tanulási mérnökök, akik adatelőkészítési és modellbetanítási feladatokat kezelnek megosztott Kubernetes- vagy felhő-környezetben.
- Analitikai mérnökök, akik nagy adathalmazokkal dolgoznak, és az adatfeldolgozási hatékonyság növelését célozzák.
- DevOps, Platform és Felhő-mérnökök, akik Spark munkafolyamatokat támogatnak a Kubernetesben, és megértik, hogyan befolyásolja az alkalmazásszintű konfiguráció az erőforrás-használatot és a teljesítményt.
- Tech vezetők és Megoldásarchitektusok, akik modern adatfeldolgozási platformok tervezésében vagy optimalizálásában vesznek részt.
Vélemények (1)
Szerettek, hogy gyakorlati volt. Örültem annak, hogy a teóriai ismereteket gyakorlati példákkal alkalmazhattam.
Aurelia-Adriana - Allianz Services Romania
Kurzus - Python and Spark for Big Data (PySpark)
Gépi fordítás