Spark / Pyspark Eğitimi
Spark / Pyspark Eğitimi
Eğitim Hakkında
Günümüzde büyük veri analitiği, yüksek hacimli verilerin hızlı, ölçeklenebilir ve performans odaklı şekilde işlenmesini gerektirmektedir. Spark / PySpark Eğitimi, katılımcılara Apache Spark mimarisini, PySpark geliştirme süreçlerini ve büyük veri işleme tekniklerini uygulamalı örneklerle öğretmeyi amaçlayan kapsamlı bir eğitim programıdır. Eğitim boyunca teorik bilgiler, gerçek senaryolara dayalı laboratuvar çalışmalarıyla desteklenerek katılımcıların pratik deneyim kazanması hedeflenmektedir.
Eğitim kapsamında Spark mimarisi, DataFrame API, Spark SQL, performans optimizasyonu, partition yönetimi, Feature Engineering, MLlib Pipeline API ve Delta Lake gibi büyük veri ekosisteminin temel bileşenleri ele alınmaktadır. Program sonunda katılımcılar, büyük veri üzerinde yüksek performanslı veri işleme süreçleri geliştirebilecek, makine öğrenmesi modelleri için ölçeklenebilir veri hazırlama (Feature Engineering) süreçlerini yönetebilecek ve üretim ortamlarına uygun PySpark çözümleri geliştirebilecektir.
Ön Koşul
Bu eğitime katılabilmek için Python programlama dili ve SQL sorgulama konusunda temel bilgi sahibi olunması önerilmektedir.
Eğitim İçeriği
- Driver, Executor, Cluster Manager kavramları (YARN, Kubernetes, Standalone)
- Job, Stage, Task hiyerarşisi ve çalışma mantığı
- Lazy evaluation ve DAG (Directed Acyclic Graph) oluşturma mantığı
- LAB: Local/cluster ortam kurulumu, ilk Spark job çalıştırma, Spark UI'a giriş
- RDD, DataFrame ve Dataset Karşılaştırması
- RDD API: düşük seviye transformation/action mantığı
- DataFrame API: şema (schema) ve Catalyst Optimizer entegrasyonu
- Transformation vs Action — narrow vs wide transformation ayrımı
- PySpark'ta Dataset API'nin karşılığı ve DataFrame ile ilişkisi
- LAB: Aynı problemi RDD ve DataFrame ile çözüp performans karşılaştırması
- Catalyst Optimizer & Tungsten Execution Engine
- Logical plan, optimized logical plan, physical plan aşamaları
- Predicate pushdown, constant folding, column pruning optimizasyonları
- Tungsten: bellek yönetimi ve whole-stage code generation
- explain() ile execution plan okuma ve yorumlama
- LAB: Sorgu planlarını explain(True) ile analiz etme
- DataFrame API Derinlemesine
- Şema tanımlama, select/filter/withColumn işlemleri
- UDF vs built-in fonksiyonlar — performans farkı ve maliyeti
- DataFrame API vs Spark SQL syntax karşılaştırması
- LAB: Ham CSV/JSON veriden temizlenmiş DataFrame üretimi
- Join Stratejileri & Aggregation İşlemleri
- Join türleri: inner, outer, semi, anti join
- Broadcast join, sort-merge join, shuffle hash join mekanizmaları
- groupBy, agg, pivot işlemleri ile veri özetleme
- Join stratejisi seçimi ve broadcast threshold (autoBroadcastJoinThreshold) ayarı
- LAB: Büyük-küçük tablo join'inde broadcast hint kullanımı, performans ölçümü
- Window Functions & Spark SQL
- rank, dense_rank, row_number, lead/lag fonksiyonları
- Rolling aggregation: partitionBy/orderBy ile pencere tanımlama
- Spark SQL: temp view, global temp view, catalog yönetimi
- LAB: Zaman serisi verisinde window function ile trend/hareketli ortalama hesaplama
- Partition Mantığı & Shuffle Mekanizması
- Partition kavramı, varsayılan partition sayısı ve veri dağılımı
- Shuffle nedir, hangi işlemlerde tetiklenir
- repartition vs coalesce farkları ve doğru kullanım senaryoları
- spark.sql.shuffle.partitions ayarının performansa etkisi
- LAB: Partition sayısının değiştirilmesinin job süresine etkisini ölçme
- Data Skew & Adaptive Query Execution (AQE)
- Data skew tespiti, nedenleri ve Spark UI üzerinden belirtileri
- Salting tekniği ile skew problemi çözümü
- AQE: dinamik partition coalescing ve skew join optimizasyonu
- Broadcast join threshold tuning ve otomatik plan yeniden yazımı
- LAB: Skewed veri setinde salting uygulaması, AQE açık/kapalı performans karşılaştırması
- Caching, Persistence & Cluster Tuning
- cache() vs persist(), storage level seçimi (MEMORY_ONLY, MEMORY_AND_DISK vb.)
- Memory management: execution memory vs storage memory
- Executor sizing: spark.executor.memory, spark.executor.cores, spark.executor.instances
- Spark UI ve History Server ile yavaş stage/job debug etme
- LAB: Spark UI üzerinden darboğaz (bottleneck) tespiti ve konfigürasyon tuning
- Pandas UDF & Vectorized İşlemler
- Klasik Python UDF'in performans maliyeti — serialization overhead
- Pandas UDF (vectorized UDF): Apache Arrow entegrasyonu
- Scalar, Grouped Map, Grouped Aggregate Pandas UDF türleri
- LAB: Klasik UDF'i Pandas UDF'e dönüştürüp performans karşılaştırması
- Feature Engineering Temelleri (PySpark)
- Missing value stratejileri ve ölçekte outlier tespiti
- Bucketing, binning, kategorik encoding (StringIndexer, OneHotEncoder)
- Feature scaling: StandardScaler, MinMaxScaler
- LAB: Ham veri setinden uçtan uca feature transform pipeline'ı kurma
- MLlib Pipeline API & Model Girdisi Hazırlama
- Pipeline, Transformer, Estimator kavramları
- VectorAssembler ile tekil feature vektörü oluşturma
- Büyük ölçekte train/test split ve cross-validation temelleri
- LAB: Uçtan uca ML pipeline — ham veriden feature vektörüne, train/test set'e
- Kapanış: Delta Lake, Veri Formatları & Proje Değerlendirmesi
- Parquet vs Delta Lake: ACID garantileri, time travel, schema evolution
- Model girdisi için veri formatlama best practice'leri
- Eğitim özeti ve öğrenilenlerin production ortamına taşınması
- Proje değerlendirmesi — uçtan uca feature pipeline sunumu
Kazanımlar
- Apache Spark mimarisini, çalışma mantığını ve büyük veri işleme süreçlerini etkin şekilde anlayabileceksiniz.
- PySpark DataFrame API ve Spark SQL kullanarak büyük veri kümeleri üzerinde yüksek performanslı veri işleme uygulamaları geliştirebileceksiniz.
- Spark'ın Catalyst Optimizer ve Tungsten Execution Engine mimarilerini kullanarak sorgu performansını analiz edebilecek ve optimize edebileceksiniz.
- Join stratejileri, Window Functions ve aggregation işlemlerini performans odaklı şekilde uygulayabileceksiniz.
- Partition yönetimi, shuffle mekanizması, caching ve Adaptive Query Execution (AQE) teknikleriyle Spark uygulamalarının performansını artırabileceksiniz.
- Spark UI ve History Server araçlarını kullanarak darboğazları analiz edebilecek ve performans iyileştirmeleri gerçekleştirebileceksiniz.
- Pandas UDF, Feature Engineering ve MLlib Pipeline API kullanarak makine öğrenmesi projeleri için ölçeklenebilir veri hazırlama süreçleri oluşturabileceksiniz.
- Delta Lake ve Parquet gibi modern veri formatlarını kullanarak güvenilir ve sürdürülebilir büyük veri çözümleri geliştirebileceksiniz.
- Gerçek bir proje kapsamında uçtan uca bir Feature Engineering Pipeline geliştirerek üretim ortamına uygun büyük veri işleme süreçleri tasarlayabileceksiniz.
Hedef Kitle
- Spark tabanlı veri işleme süreçlerini kurumsal projelerde kullanmayı hedefleyen teknik ekipler
- Büyük veri işleme ve performans optimizasyonu konularında yetkinlik kazanmak isteyen BT profesyonelleri
- Python ve SQL bilgisine sahip olup büyük veri teknolojilerinde uzmanlaşmak isteyen profesyoneller
- Büyük veri platformlarının yönetimi ve optimizasyonundan sorumlu Veri Platformu Uzmanları
- Veri Bilimcileri (Data Scientists) ve Makine Öğrenmesi Mühendisleri
- Apache Spark ve PySpark teknolojileriyle büyük veri uygulamaları geliştirmek isteyen Yazılım Geliştiriciler
- Büyük veri analitiği alanında çalışan Veri Mühendisleri (Data Engineers)
Sertifika
Eğitimlerimize %80 oranında katılım gösterilmesi ve eğitim müfredatına göre uygulanacak sınav/projelerin başarıyla tamamlanması durumunda, eğitimin sonunda dijital ve QR kod destekli “BT Akademi Başarı Sertifikası” verilmektedir.
SEKTÖRÜN GÜVENDİĞİ ÇÖZÜM ORTAĞI
BT Akademi'yi tercih eden 4.000'den fazla kurum yanılmıyor.