Get in Touch
 Duration 21 hours

Course Outline

Module 1: Big Data & Spark Foundations

  • Overview of the Big Data ecosystem and Spark's role in modern data platforms
  • Spark architecture deep-dive: drivers, executors, cluster managers, lazy evaluation, DAGs, and execution planning
  • Distinguishing between RDD and DataFrame APIs and determining when to apply each
  • Creating and configuring SparkSession and understanding core application settings

Module 2: PySpark DataFrames

  • Reading from and writing to enterprise sources and formats: CSV, JSON, Parquet, and Delta
  • Mastering PySpark DataFrames: transformations, actions, column expressions, filtering, joins, and aggregations
  • Implementing advanced operations such as window functions, timestamp handling, and nested data manipulation
  • Applying data quality checks and writing reusable, maintainable PySpark code

Module 3: Kubernetes & Docker Fundamentals for Spark Users

  • Conceptual view for cluster consumers (not admins) on how Docker images and Kubernetes pods map to Spark driver and executor processes
  • What happens when a Spark job runs on Kubernetes: pod scheduling, resource requests/limits, and mapping session settings
  • Distinguishing between user-controlled Spark session parameters and platform-team cluster provisioning, and why this boundary is critical for tuning
  • Hands-on exercise: Inspect a live Spark-on-Kubernetes job in the sandbox to identify driver and executor pods

Module 4: Spark Session Configuration on Kubernetes — Deep Dive

  • Executor count vs. size: analyzing memory-versus-cores trade-offs and reasoning about optimal configurations
  • Driver and executor memory allocation, overhead, and how these translate into pod resources
  • Dynamic allocation: behavior on Kubernetes, scenarios where it saves resources, and when it does not
  • Hands-on exercise: Execute the same job under varying executor and core configurations to compare runtime and resource utilization

Module 5: Scaling Behaviour & Cost Optimisation

  • Impact of adding or removing nodes on job behavior, completion time, and resource consumption
  • Comparing many small executors versus fewer large ones: analyzing performance and cost trade-offs
  • Shuffle behavior and partition tuning, including estimating the cost impact of specific configuration choices
  • Hands-on exercise: Scale the sandbox cluster from five to ten nodes and monitor the effect on job completion and resource usage

Module 6: Efficient Data Ingestion & Partitioning

  • The small-files problem: why sources split across many 1–5 MB Parquet files degrade performance and distort partitioning
  • Strategies for repartitioning and coalescing data
  • Controlling partition sizes during both read and write operations
  • Writing Parquet efficiently to prevent the creation of small-file issues downstream
  • Hands-on exercise: Load a dataset composed of many small Parquet partitions, apply various repartitioning strategies, and compare performance pre- and post-optimization

Module 7: Pandas Memory Management & Failure Diagnosis

  • Root causes of out-of-memory errors in Pandas and recognizing their symptoms
  • Applying memory-efficient conversion patterns between Spark and Pandas
  • Preventing memory blow-ups when writing large datasets to CSV
  • Utilizing chunked processing and dtype optimization for resource-constrained environments
  • Hands-on exercise: Reproduce a common Pandas OOM scenario and resolve it using chunking and dtype optimization

Module 8: Polars as a Complementary Tool

  • Positioning Polars relative to Pandas: 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 into Polars and compare memory usage and processing speed

Module 9: Applying Optimisation to ETL & ML Workloads

  • Applying configuration, partitioning, and memory-management principles across a realistic ETL pipeline
  • Optimization considerations specific to machine-learning workloads running on the same cluster
  • Implementing a practical tuning workflow to systematically diagnose cost and performance issues
  • Hands-on exercise: Complete an end-to-end mini-project combining data loading, transformation, and simple model training, with participants tuning the Spark configuration independently

Requirements

Attendees are expected to have:

  • Hands-on experience with Python programming, including functions, modules, and basic object-oriented principles.
  • Foundational to intermediate proficiency in Pandas and tabular data workflows.
  • Familiarity with PySpark and Spark DataFrames, covering data ingestion, transformations, actions, joins, and aggregations.
  • A general command of SQL and data-processing concepts, such as filtering, grouping, and joining datasets.
  • Basic knowledge of Docker and Kubernetes concepts, including containers, images, and pods. No Kubernetes administration background is necessary.
  • Basic understanding of standard data formats like CSV, JSON, and Parquet.

Participants do not need to be Kubernetes administrators or infrastructure specialists. The course is tailored for data engineers, developers, and data scientists who wish to understand and optimize their Spark workloads on Kubernetes from an application and configuration standpoint.

Target Audience

This training is ideal for professionals who develop, maintain, or optimize data-processing and machine-learning workloads using Python and Spark in cloud or containerized settings.

It is particularly well-suited for:

  • Data Engineers leveraging PySpark for distributed processing and ETL pipelines.
  • Data Scientists handling large-scale datasets or running ML workloads with 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 on shared Kubernetes or cloud platforms.
  • Analytics Engineers dealing with large datasets who seek to boost data-processing efficiency.
  • DevOps, Platform, and Cloud Engineers supporting Spark on Kubernetes who need to understand how application settings affect resource usage and performance.
  • Technical Leads and Solution Architects involved in designing or optimizing modern data platforms.

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories