Get in Touch
 Duration 21 hours

Course Outline

Module 1: Big Data & Spark Fundamentals

  • Overview of the Big Data landscape and Spark's role in modern data platforms
  • Comprehending Spark architecture: driver, executors, cluster manager, lazy evaluation, DAG and execution planning
  • Distinguishing between RDD and DataFrame APIs and determining the appropriate use case for each
  • Setting up and configuring SparkSession to grasp the fundamentals of application configuration

Module 2: PySpark DataFrames

  • Ingesting and exporting data from enterprise sources and formats: CSV, JSON, Parquet and Delta
  • Manipulating PySpark DataFrames: transformations, actions, column expressions, filtering, joins and aggregations
  • Executing advanced operations such as window functions, timestamp handling and managing nested data
  • Implementing data quality checks and authoring reusable, maintainable PySpark code

Module 3: Kubernetes & Docker Essentials for Spark Users

  • Understanding the relationship between Docker images and Kubernetes pods in relation to Spark driver and executor processes — a conceptual view for cluster consumers rather than administrators
  • Insights into Spark job execution on Kubernetes: pod scheduling, resource requests and limits, and how session settings map to them
  • Differentiating between what is controlled via Spark session parameters and what is managed by the platform team through cluster provisioning — and why this distinction is critical for tuning
  • Practical Exercise: Examine an active Spark-on-Kubernetes job in the sandbox cluster to identify driver and executor pods

Module 4: Spark Session Configuration on Kubernetes — In Depth

  • Analysing executor count versus executor size: memory versus cores trade-offs and how to evaluate them
  • Driver and executor memory allocation, overhead considerations, and their translation into pod resources
  • Dynamic allocation: behaviour on Kubernetes, scenarios where it conserves resources and those where it does not
  • Practical Exercise: Execute the same job with varying executor and core configurations to compare runtime and resource consumption

Module 5: Scaling Dynamics & Cost Refinement

  • Understanding how adding or removing nodes alters job behaviour, completion time and resource usage
  • Evaluating the trade-offs between many small executors and fewer large ones in terms of performance and cost
  • Shuffle dynamics and tuning shuffle partitions, including assessing the cost impact of configuration decisions
  • Practical Exercise: Scale the sandbox cluster from five to ten nodes to observe the impact on job completion time and resource consumption

Module 6: Efficient Data Ingestion & Partitioning

  • Understanding the small-files problem: why sources split across numerous 1–5 MB Parquet files degrade performance and skew partitioning
  • Strategies for repartitioning and coalescing
  • Managing partition sizes during read and write operations
  • Writing Parquet data efficiently to prevent the recreation of small-file issues downstream
  • Practical Exercise: Load a dataset comprising many small Parquet partitions, apply various repartitioning strategies and compare performance before and after optimisation

Module 7: Pandas Memory Control & Failure Analysis

  • Identifying the root causes of out-of-memory errors in Pandas and recognising their symptoms
  • Applying memory-efficient conversion patterns between Spark and Pandas
  • Preventing memory blow-ups when exporting large datasets to CSV
  • Utilising chunked processing and dtype optimisation for constrained environments
  • Practical Exercise: Reproduce a standard Pandas out-of-memory scenario and resolve it using chunking and dtype optimisation

Module 8: Polars as a Complementary Tool

  • Positioning Polars relative to Pandas: performance traits, lazy evaluation and memory behaviour
  • Understanding where Polars fits alongside PySpark and Pandas in modern cloud data stacks and migration roadmaps, including AWS environments
  • Practical Exercise: Rewrite a Pandas-centric transformation in Polars to 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
  • Understanding optimisation considerations specific to machine learning workloads running on the same cluster
  • Applying a practical tuning workflow to systematically diagnose cost and performance issues
  • Practical Exercise: Complete an end-to-end mini-project combining data loading, transformation and a simple model training step, with participants tuning the Spark configuration themselves

Requirements

Attendees are expected to possess:

  • Practical proficiency in Python programming, covering functions, modules and fundamental object-oriented principles.
  • Basic to intermediate experience with Pandas and tabular data workflows.
  • General familiarity with PySpark and Spark DataFrames, including data ingestion, transformations, actions, joins and aggregations.
  • A general grasp of SQL and data processing principles, such as filtering, grouping and joining datasets.
  • Basic awareness of Docker and Kubernetes concepts, including containers, images and pods. No prior experience in Kubernetes administration 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 workshop concentrates on enabling data engineers, developers and data scientists to comprehend and optimise their Spark workloads on Kubernetes from an application and configuration standpoint.

Intended Audience

This workshop is tailored for professionals who create, maintain or refine data processing and machine learning workloads using Python and Spark within cloud or containerised ecosystems.

It is particularly well-suited for:

  • Data Engineers engaged with PySpark, distributed data processing and ETL pipelines.
  • Data Scientists processing large datasets or executing machine learning tasks using Spark, Pandas or Polars.
  • Python Developers building data-intensive applications who seek to enhance memory efficiency and processing speed.
  • Machine Learning Engineers overseeing data preparation and model training on shared Kubernetes or cloud platforms.
  • Analytics Engineers managing large datasets with a goal of improving processing efficiency.
  • DevOps, Platform and Cloud Engineers supporting Spark workloads on Kubernetes who need to understand how application-level settings influence resource usage and performance.
  • Technical Leads and Solution Architects involved in the design or optimisation of contemporary data processing platforms.

Testimonials (1)

Related Categories