Your browser is out of date

Update your browser to view this website correctly. Update my browser now


Take your knowledge to the next level

This hands-on training course delivers the key concepts and expertise developers need to develop high-performance parallel applications with Apache Spark 2. Participants will learn how to use Spark SQL to query structured data and Spark Streaming to perform real-time processing on streaming data from a variety of sources. Developers will also practice writing applications that use core Spark to perform ETL processing and iterative algorithms. The course covers how to work with large datasets stored in a distributed file system, and execute Spark applications on a Hadoop cluster. After taking this course, participants will be prepared to face real-world challenges and build applications to execute faster decisions, better decisions, and interactive analysis, applied to a wide variety of use cases, architectures, and industries.

With this course update, we streamlined the agenda to help you quickly become productive with the most important technologies, including Spark 2.

Get hands-on experience

Hands-on exercises take place on a live cluster, running in the cloud. A private cluster will be built for each student to use during the class.

Through instructor-led discussion and interactive, hands-on exercises, participants will navigate the Hadoop ecosystem, learning how to::

  • Distribute, store, and process data in a Hadoop cluster
  • Write, configure, and deploy Spark applications on a cluster
  • Use the Spark shell for interactive data analysis
  • Process and query structured data using Spark SQL
  • Use Spark Streaming to process a live data stream

What to expect

This course is designed for developers and engineers who have programming experience, but prior knowledge of Hadoop and/or Spark is not required.

  • Apache Spark examples and hands-on exercises are presented in Scala and Python. The ability to program in one of those languages is required.
  • Basic familiarity with the Linux command line is assumed.
  • Basic knowledge of SQL is helpful


Book the course

How would you like to train?

Course Outline

Introduction to Apache Hadoop and the Hadoop Ecosystem 

  • Introduction to Apache Hadoop and the Hadoop Ecosystem
  • Apache Hadoop Overview
  • Data Ingestion and Storage
  • Data Processing 
  • Data Analysis and Exploration
  • Other Ecosystem Tools
  • Introduction to the Hands-On Exercises

Apache Hadoop File Storage

  • Apache Hadoop Cluster Components
  • HDFS Architecture
  • Using HDFS 

Distributed Processing on an Apache Hadoop Cluster

  • YARN Architecture
  • Working With YARN

Apache Spark Basics

  • What is Apache Spark?
  • Starting the Spark Shell
  • Using the Spark Shell 
  • Getting Started with Datasets and DataFrames
  • DataFrame Operations

Working with DataFrames and Schemas

  • Creating DataFrames from Data Sources
  • Saving DataFrames to Data Sources
  • DataFrame Schemas 
  • Eager and Lazy Execution

Analyzing Data with DataFrame Queries

  • Querying DataFrames Using Column Expressions
  • Grouping and Aggregation Queries
  • Joining DataFrames 

RDD Overview

  • RDD Overview 
  • RDD Data Sources
  • Creating and Saving RDDs 
  • RDD Operations

Transforming Data with RDDs

  • Writing and Passing Transformation Functions 
  • Transformation Execution
  • Converting Between RDDs and DataFrames 

Aggregating Data with Pair RDDs

  • Key-Value Pair RDDs 
  • Map-Reduce
  • Other Pair RDD Operations 


Querying Tables and Views with Apache Spark SQL

  • Querying Tables in Spark Using SQL 
  • Querying Files and Views
  • The Catalog API 
  • Comparing Spark SQL, Apache Impala, and Apache Hive-on-Spark


Working with Datasets in Scala

  • Datasets and DataFrames 
  • Creating Datasets
  • Loading and Saving Datasets 
  • Dataset Operations


Writing, Configuring, and Running Apache Spark Applications

  • Writing a Spark Application 
  • Building and Running an Application
  • Application Deployment Mode 
  • The Spark Application Web UI
  • Configuring Application Properties 

Distributed Processing

  • Review: Apache Spark on a Cluster 
  • RDD Partitions
  • Example: Partitioning in Queries 
  • Stages and Tasks
  • Job Execution Planning 
  • Example: Catalyst Execution Plan
  • Example: RDD Execution Plan 

Distributed Data Persistence

  • DataFrame and Dataset Persistence 
  • Persistence Storage Levels
  • Viewing Persisted RDDs 

Common Patterns in Apache Spark Data Processing

  • Common Apache Spark Use Cases 
  • Iterative Algorithms in Apache Spark
  • Machine Learning 
  • Example: k-means

Apache Spark Streaming: Introduction to DStreams

  • Apache Spark Streaming Overview 
  • Example: Streaming Request Count
  • DStreams 
  • Developing Streaming Applications

Apache Spark Streaming: Processing Multiple Batches

  • Multi-Batch Operations 
  • Time Slicing
  • State Operations 
  • Sliding Window Operations
  • Preview: Structured Streaming 


Apache Spark Streaming: Data Sources

  • Streaming Data Source Overview 
  • Apache Flume and Apache Kafka Data Sources
  • Example: Using a Kafka Direct Data Source 

Learn more

CCA Spark and Hadoop Developer Certification

This course is excellent preparation for the CCA Spark and Hadoop Developer exam. Although we recommend further training and hands-on experience before attempting the exam, this course covers many of the subjects tested. 

Certification is a great differentiator. It helps establish you as a leader in the field, providing employers and customers with tangible evidence of your skills and expertise.

Advance your career

Big data developers are among the world's most in-demand and highly-compensated technical roles. Check out some of the job opportunities currently listed that match the professional profile, many of which seek CCA qualifications.

Private training

We also provide private training at your site, at your pace, and tailored to your needs.

Your form submission has failed.

This may have been caused by one of the following:

  • Your request timed out
  • A plugin/browser extension blocked the submission. If you have an ad blocking plugin please disable it and close this message to reload the page.