Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Duration 21 hours
Course Outline
Module 1: Foundations of Big Data & Spark
- Overview of the Big Data ecosystem and Spark's role in modern data platforms
- Exploring Spark architecture: drivers, executors, cluster managers, lazy evaluation, DAGs, and execution planning
- Contrasting RDD and DataFrame APIs and determining the appropriate use case for each
- Creating and configuring SparkSession with a focus on application configuration fundamentals
Module 2: PySpark DataFrames
- Reading and writing data from enterprise sources and formats: CSV, JSON, Parquet, and Delta
- Mastering PySpark DataFrames: transformations, actions, column expressions, filtering, joins, and aggregations
- Implementing advanced operations including window functions, timestamp handling, and nested data manipulation
- Applying data quality checks and writing reusable, maintainable PySpark code
Module 3: Kubernetes & Docker Basics for Spark Users
- Conceptual understanding of the relationship between Docker images, Kubernetes pods, and Spark driver/executor processes — focused on cluster consumers rather than administrators
- Understanding the lifecycle of a Spark job on Kubernetes: pod scheduling, resource requests/limits, and the mapping of session settings
- Distinguishing between controls available via Spark session parameters and those managed by the platform team during cluster provisioning — and why this boundary is critical for tuning
- Hands-on exercise: Inspect a live Spark-on-Kubernetes job in a sandbox cluster to identify driver and executor pods
Module 4: In-Depth Spark Session Configuration on Kubernetes
- Analyzing the trade-offs between executor count and executor size, specifically regarding memory versus cores
- Managing driver and executor memory allocation, overhead, and the translation of these settings into pod resources
- Exploring dynamic allocation: its behavior on Kubernetes, scenarios where it saves resources, and limitations
- Hands-on exercise: Execute the same job with varying executor and core configurations to compare runtime and resource consumption
Module 5: Scaling Dynamics & Cost Optimization
- Understanding how node addition or removal impacts job behavior, completion times, and resource usage
- Evaluating the performance and cost implications of using many small executors versus fewer large ones
- Tuning shuffle behavior and partitions, including estimating the cost impact of specific configuration choices
- Hands-on exercise: Scale the sandbox cluster from five to ten nodes to observe effects on job completion time and resource consumption
Module 6: Efficient Data Ingestion & Partitioning
- Addressing the small-files problem: understanding how sources split into many 1–5 MB Parquet files degrade performance and distort partitioning
- Strategies for repartitioning and coalescing data
- Controlling partition sizes during read and write operations
- Writing Parquet efficiently to prevent the recurrence of small-file issues downstream
- Hands-on exercise: Load a dataset consisting of numerous small Parquet partitions, apply various repartitioning strategies, and compare performance before and after optimization
Module 7: Pandas Memory Management & Failure Diagnosis
- Identifying root causes of out-of-memory errors in Pandas and recognizing key symptoms
- Implementing memory-efficient conversion patterns between Spark and Pandas
- Preventing memory spikes when writing large datasets to CSV
- Utilizing chunked processing and dtype optimization for memory-constrained environments
- Hands-on exercise: Reproduce a typical Pandas out-of-memory scenario and resolve it using chunking and dtype optimization
Module 8: Polars as a Complementary Tool
- Positioning Polars relative to Pandas: analyzing performance characteristics, lazy evaluation, and memory behavior
- Understanding where Polars fits alongside PySpark and Pandas in modern cloud data stacks and migration roadmaps, including AWS environments
- Hands-on exercise: Refactor a Pandas-heavy transformation in Polars and compare memory usage and processing speed
Module 9: Applying Optimization to ETL & ML Workloads
- Integrating configuration, partitioning, and memory management principles into a realistic ETL pipeline
- Considering optimization specifics for machine learning workloads running on the same cluster
- Applying a practical tuning workflow to systematically diagnose cost and performance issues
- Hands-on exercise: Complete an end-to-end mini-project involving data loading, transformation, and basic model training, with participants tuning the Spark configuration independently
Requirements
Participants are expected to have:
- Practical proficiency in Python programming, including functions, modules, and fundamental object-oriented principles.
- Foundational to intermediate experience with Pandas and standard tabular data processing workflows.
- Basic knowledge of PySpark and Spark DataFrames, covering data ingestion, transformations, actions, joins, and aggregations.
- A general grasp of SQL and core data processing concepts, such as filtering, grouping, and dataset joining.
- Familiarity with core Docker and Kubernetes concepts, including containers, images, and pods. No prior Kubernetes administration experience is necessary.
- Basic understanding of common data formats such as CSV, JSON, and Parquet.
Participants do not need to be Kubernetes administrators or infrastructure specialists. The course is designed to help data engineers, developers, and data scientists understand and optimize their Spark workloads on Kubernetes from an application and configuration perspective.
Target Audience
This course is tailored for professionals who develop, maintain, or optimize data processing and machine learning workloads using Python and Spark in cloud or containerized environments.
It is particularly beneficial for:
- Data Engineers focused on PySpark, distributed data processing, and ETL pipeline development.
- Data Scientists processing large datasets or executing machine learning workloads using Spark, Pandas, or Polars.
- Python Developers working on data-intensive applications who aim to enhance memory efficiency and processing speed.
- Machine Learning Engineers managing data preparation and model training workloads on shared Kubernetes or cloud platforms.
- Analytics Engineers working with large datasets who seek to improve data processing efficiency.
- DevOps, Platform, and Cloud Engineers supporting Spark on Kubernetes who need to understand how application-level configurations influence resource usage and performance.
- Technical Leads and Solution Architects involved in designing or optimizing modern data processing platforms.
Testimonials (1)
I liked that it was practical. Loved to apply the theoretical knowledge with practical examples.