Course Code: pysprkub
Duration: 21 hours

Prerequisites:

Katılımcılarda aşağıdaki becerilerin bulunması beklenmektedir:

  • Python programlama konusunda işlevler, modüller ve temel nesne yönelimli kavramlar dahil olmak üzere pratik deneyim.
  • Pandas ve tabular veri işleme iş akışları ile temel veya orta düzeyde deneyim.
  • Veri okuma, dönüştürme, eylemler, birleştirme (joins) ve özetleme işlemleri dahil olmak üzere PySpark ve Spark DataFrames ile temel aşinalık.
  • Filtreleme, gruplandırma ve veri kümelerini birleştirme gibi SQL ve veri işleme kavramları hakkında genel bir anlayış.
  • Konteynerler, imajlar ve podlar gibi kavramlar dahil olmak üzere Docker ve Kubernetes ile temel aşinalık. Kubernetes yöneticiliği deneyimi gerekmemektedir.
  • CSV, JSON ve Parquet gibi yaygın veri biçimleri hakkında temel bilgi.

Katılımcıların Kubernetes yöneticisi veya altyapı uzmanı olmaları gerekmemektedir. Kurs, veri mühendislerinin, geliştiricilerin ve veri bilimcilerin, uygulama ve yapılandırma perspektifinden Kubernetes üzerinde çalışan Spark iş yüklerini nasıl anlayıp optimize edebileceklerine odaklanmaktadır.

Hedef Kitle

Bu kurs; bulut veya konteynerleştirilmiş ortamlarda Python ve Spark kullanarak veri işleme ve makine öğrenmesi iş yükleri geliştiren, bakımını yapan veya optimize eden profesyoneller için tasarlanmıştır.

Aşağıdaki kişiler için özellikle uygundur:

  • PySpark, dağıtık veri işleme ve ETL boru hatlarıyla çalışan Veri Mühendisleri.
  • Spark, Pandas veya Polars ile büyük veri kümelerini işleyen veya makine öğrenmesi iş yükleri yürüten Veri Bilimcileri.
  • Veri yoğun uygulamalarla çalışan ve bellek verimliliğini ve işleme performansını artırmak isteyen Python Geliştiricileri.
  • Paylaşımlı Kubernetes veya bulut ortamlarında veri hazırlama ve model eğitimi iş yüklerini yöneten Makine Öğrenmesi Mühendisleri.
  • Büyük veri kümeleriyle çalışarak veri işleme verimliliğini artırmayı hedefleyen Analitik Mühendisleri.
  • Kubernetes üzerinde Spark iş yüklerini destekleyen ve uygulama düzeyindeki yapılandırmanın kaynak kullanımını ve performansı nasıl etkilediğini anlaması gereken DevOps, Platform ve Bulut Mühendisleri.
  • Modern veri işleme platformlarının tasarımında veya optimizasyonunda rol alan Teknik Liderler ve Çözüm Mimarları.

Overview:

Üç günlük bu uygulamalı kurs, Kubernetes tabanlı ortamlarda PySpark, Pandas ve Polars kullanarak verimli veri işleme iş yükleri oluşturmaya ve optimize etmeye odaklanmaktadır.

Katılımcılar, Spark uygulamalarının Kubernetes üzerinde nasıl çalıştığını ve uygulama düzeyindeki yapılandırma kararlarının performans, ölçeklenebilirlik, kaynak tüketimi ve maliyet üzerinde nasıl etkili olduğunu pratik bir anlayışla kavrayacaktır. Kurs; executor boyutlandırması, bellek tahsisi, dinamik tahsis, bölümlendirme stratejileri, shuffle davranışı, küçük dosya sorunları ve verimli Parquet işleme dahil olmak üzere temel optimizasyon alanlarını kapsamaktadır.

Kurs ayrıca Pandas ile çalışırken karşılaşılan yaygın zorlukları, özellikle bellek kısıtlamaları ve bellek yetersizliği hatalarını ele almakta ve seçili veri işleme iş yükleri için Polars'ı yüksek performanslı bir alternatif olarak tanıtmaktadır. Uygulamalı egzersizler aracılığıyla katılımcılar, performans ve bellek sorunlarını teşhis edecek, farklı yapılandırma stratejilerini karşılaştıracak ve gerçekçi ETL ve makine öğrenmesi senaryolarına optimizasyon teknikleri uygulayacaktır.

Kurs boyunca temel odak nokta pratik karar vermektir: darboğazları nasıl belirleyeceğinizi, uygun aracı seçmeyi, Spark'ı verimli bir şekilde yapılandırmayı ve altyapı kaynak tüketimi ile maliyet dengesini nasıl gözeterek performansı optimize edeceğinizi anlamaktır.

Course Outline:

Modül 1: Büyük Veri ve Spark Temelleri

  • Büyük Veri ekosisteminin genel görünümü ve modern veri platformlarında Spark'ın rolü
  • Spark mimarisini anlama: driver, executorlar, küme yöneticisi, tembel değerlendirme (lazy evaluation), DAG ve yürütme planlaması
  • RDD ve DataFrame API'leri arasındaki farklılıklar ve hangi yaklaşımın ne zaman kullanılacağı
  • SparkSession oluşturma ve yapılandırma; uygulama yapılandırmasının temel ilkelerini anlama

Modül 2: PySpark DataFrames

  • CSV, JSON, Parquet ve Delta gibi kurumsal kaynaklardan ve biçimlerden veri okuma ve yazma
  • PySpark DataFrames ile çalışma: dönüştürme, eylemler, sütun ifadeleri, filtreleme, birleştirme (joins) ve özetleme
  • Pencere işlevleri (window functions), zaman damgalarıyla çalışma ve iç içe geçmiş veriyle başa çıkma gibi ileri düzey işlemlerin uygulanması
  • Veri kalite kontrollerinin uygulanması ve yeniden kullanılabilir, sürdürülebilir PySpark kodu yazma

Modül 3: Spark Kullanıcıları İçin Kubernetes ve Docker Temelleri

  • Docker imajlarının ve Kubernetes podlarının Spark driver ve executor süreçleriyle ilişkisini anlama — yöneticiler için değil, küme tüketicileri için kavramsal bir bakış
  • Spark işinin Kubernetes üzerinde çalışırken neler olduğunu anlama: pod zamanlaması, kaynak istekleri ve sınırları, oturum ayarlarının bunlara nasıl eşlendiği
  • Spark oturum parametreleri üzerinden neyin sizin kontrolünüzde olduğunu, neyin de platform ekibinin küme sağlama ayarları üzerinden kontrolünde olduğunu ve bu sınırın nedenine ayarlamaları etkilediğini anlama
  • Uygulamalı egzersiz: Kum havuzu kümesinde çalışan bir Spark-on-Kubernetes işini inceleyin ve driver ile executor podlarını belirleyin

Modül 3: Kubernetes Üzerinde Spark Oturum Yapılandırması — Derinlemesine İnceleme

  • Executor sayısı ile executor boyutu arasındaki farkı anlama: bellek ve çekirdek (cores) arasındaki takaslar ve bunların nasıl değerlendirileceği
  • Driver ve executor bellek tahsisi, bellek fazlalığı (overhead) ve bunların pod kaynaklarına nasıl dönüştüğü
  • Dinamik tahsis: Kubernetes üzerinde nasıl davrandığı, ne zaman kaynak tasarrufu sağladığı ve ne zaman sağamadığı
  • Uygulamalı egzersiz: Aynı işi farklı executor ve çekirdek yapılandırmaları altında çalıştırın ve çalışma süresi ile kaynak kullanımını karşılaştırın

Modül 5: Ölçekleme Davranışı ve Maliyet Optimizasyonu

  • Ek düğümlerin eklenmesinin veya kaldırılmasının iş davranışını, tamamlanma süresini ve kaynak tüketimini nasıl değiştirdiğini anlama
  • Çok sayıda küçük executor ile daha az sayıda büyük executorun karşılaştırılması: performans ve maliyet takasları
  • Shuffle davranışı ve shuffle bölümü ayarlamaları, yapılandırma seçimlerinin maliyet etkisini tahmin etme dahil
  • Uygulamalı egzersiz: Kum havuzu kümesini beş düğümden on düğüme ölçekleyin ve iş tamamlanma süresi ile kaynak tüketimi üzerindeki etkiyi gözlemleyin

Modül 6: Verimli Veri Alımı ve Bölümlendirme

  • Küçük dosya sorununu anlama: Neden kaynakların birçok 1–5 MB'lık Parquet dosyasına bölünmesi performansı düşürür ve bölümlendirmeyi çarpıtır
  • Bölümü yeniden düzenleme (repartitioning) ve birleştirme (coalescing) stratejileri
  • Okuma ve yazma sırasında bölüm boyutlarını kontrol etme
  • Aşağı akışta (downstream) küçük dosya sorununu yeniden yaratmaktan kaçınmak için Parquet dosyalarını verimli yazma
  • Uygulamalı egzersiz: Birçok küçük Parquet bölümünden oluşan bir veri kümesini yükleyin, farklı yeniden bölümlendirme stratejileri uygulayın ve optimizasyon öncesi ve sonrası performansı karşılaştırın

Modül 7: Pandas Bellek Yönetimi ve Hata Teşhisi

  • Pandas'taki bellek yetersizliği (out-of-memory) hatalarının kök nedenlerini anlama ve belirtilerini tanıma
  • Spark ile Pandas arasında bellek verimli dönüşüm kalıplarının uygulanması
  • Büyük veri kümelerini CSV olarak yazarken bellek şişlemelerinden (blow-ups) kaçınma
  • Kısıtlı ortamlar için parça parça işleme (chunked processing) ve veri tipi (dtype) optimizasyonunun kullanılması
  • Uygulamalı egzersiz: Tipik bir Pandas bellek yetersizliği senaryosunu yeniden yaratın ve parça parça işleme ile dtype optimizasyonu kullanarak çözün

Modül 8: Tamamlayıcı Bir Araç Olarak Polars

  • Polars'ın Pandas'a göre konumlandırılması: performans özellikleri, tembel değerlendirme ve bellek davranışı
  • Polars'ın modern bulut veri yığınları ve migrasyon yol haritalarında PySpark ve Pandas'ın yanında nerede yer aldığını anlama; AWS ortamları dahil
  • Uygulamalı egzersiz: Pandas ağırlıklı bir dönüştürme işlemini Polars'ta yeniden yazın ve bellek kullanımını ile işleme hızını karşılaştırın

Modül 9: Optimizasyonu ETL ve ML İş Yüklerinde Uygulama

  • Gerçekçi bir ETL boru hattında yapılandırma, bölümlendirme ve bellek yönetimi ilkelerinin uygulanması
  • Aynı kümede çalışan makine öğrenmesi iş yüklerine özgü optimizasyon dikkatlerini anlama
  • Maliyet ve performans sorunlarını sistematik olarak teşhis etmek için pratik bir ayarlama iş akışının uygulanması
  • Uygulamalı egzersiz: Katılımcıların Spark yapılandırmasını kendilerinin ayarladığı, veri yükleme, dönüştürme ve basit bir model eğitimi adımını içeren uçtan uca bir mini-proje tamamlayın

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