Big Data Analysis with Scala and Spark (Scala 2 version) (Coursera)

Big Data Analysis with Scala and Spark (Scala 2 version) (Coursera)

Manipulating big data distributed over a cluster using functional concepts is rampant in industry, and is arguably one of the first widespread industrial uses of functional ideas. This is evidenced by the popularity of MapReduce and Hadoop, and most recently Apache Spark, a fast, in-memory distributed collections framework written in Scala. In this course, we'll see how the data parallel paradigm can be extended to the distributed case, using Spark throughout.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

We'll cover Spark's programming model in detail, being careful to understand how and when it differs from familiar programming models, like shared-memory parallel collections or sequential Scala collections. Through hands-on examples in Spark and Scala, we'll learn when important issues related to distribution like latency and network communication should be considered and how they can be addressed effectively for improved performance.
Learning Outcomes. By the end of this course you will be able to:

  • read data from persistent storage and load it into Apache Spark,
  • manipulate data with Spark and Scala,
  • express algorithms for data analysis in a functional style,
  • recognize how to avoid shuffles and recomputation in Spark,

Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity using the command line. This course is intended to be taken after Parallel Programming.
Note that this version of the course uses Scala 2.13. You can find a more recent version of the course that uses Scala 3 here Big Data Analysis with Scala and Spark.

Syllabus

WEEK 1
Getting Started + Spark Basics
Get up and running with Scala on your computer. Complete an example assignment to familiarize yourself with our unique way of submitting assignments. In this week, we'll bridge the gap between data parallelism in the shared memory scenario (learned in the Parallel Programming course, prerequisite) and the distributed scenario. We'll look at important concerns that arise in distributed systems, like latency and failure. We'll go on to cover the basics of Spark, a functionally-oriented framework for big data processing in Scala. We'll end the first week by exercising what we learned about Spark by immediately getting our hands dirty analyzing a real-world data set.

WEEK 2
Reduction Operations & Distributed Key-Value Pairs
This week, we'll look at a special kind of RDD called pair RDDs. With this specialized kind of RDD in hand, we'll cover essential operations on large data sets, such as reductions and joins.

WEEK 3
Partitioning and Shuffling
This week we'll look at some of the performance implications of using operations like joins. Is it possible to get the same result without having to pay for the overhead of moving data over the network? We'll answer this question by delving into how we can partition our data to achieve better data locality, in turn optimizing some of our Spark jobs.

WEEK 4
Structured data: SQL, Dataframes, and Datasets
With our newfound understanding of the cost of data movement in a Spark job, and some experience optimizing jobs for data locality last week, this week we'll focus on how we can more easily achieve similar optimizations. Can structured data help us? We'll look at Spark SQL and its powerful optimizer which uses structure to apply impressive optimizations. We'll move on to cover DataFrames and Datasets, which give us a way to mix RDDs with the powerful automatic optimizations behind Spark SQL.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Getting Started on Mainframe with z/OS Commands and Panels (Coursera) Coursera
IBM

Getting Started on Mainframe with z/OS Commands and Panels (Coursera)

Getting Started with the IBM Mainframe with z/OS Commands and Panels is a mostly hands-on in an IBM Mainframe z/OS Environment. A total of seven labs will provide live access to an IBM Z server. The labs are designed to teach you the fundamental practical skills to navigate and work in a z/OS environment. This includes the use of ISPF/PDF dialogs, and TSO/E commands.

Jun 22nd 2026
3 Weeks
Managing Big Data with MySQL (Coursera) Coursera
Duke University

Managing Big Data with MySQL (Coursera)

This course is an introduction to how to use relational databases in business analysis. You will learn how relational databases work, and how to use entity-relationship diagrams to display the structure of the data held within them. This knowledge will help you understand how data needs to be collected in business contexts, and help you identify features you want to consider if you are involved in implementing new data collection efforts.

Jun 22nd 2026
5-12 Weeks
Database Design and Basic SQL in PostgreSQL (Coursera) Coursera
University of Michigan

Database Design and Basic SQL in PostgreSQL (Coursera)

In this course you will learn more about the historical design of databases and the use of SQL in the PostgreSQL environment. Using SQL techniques and common commands (INSERT INTO, WHERE, ORDER BY, ON DELETE CASCADE, etc) will enable you to create tables, column types and define the schema of your data in PostgreSQL. You will learn about data modeling and how to represent one-to-many and many-to-many relationships in PostgreSQL.

Jun 22nd 2026
Self-Paced
Functional Program Design in Scala (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Functional Program Design in Scala (Coursera)

In this course you will learn how to apply the functional programming style in the design of larger applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world.

Jun 22nd 2026
5-12 Weeks
Fundamentals of Big Data (Coursera) Coursera
LearnQuest

Fundamentals of Big Data (Coursera)

Welcome to Fundamentals of Big Data, the fourth course of the Key Technologies of Data Analytics specialization. By enrolling in this course, you are taking the next step in your career in data analytics. This course is the fourth of a series that aims to prepare you for a role working in data analytics. In this course, you will be introduced to many of the core concepts of big data.

Jun 22nd 2026
3 Weeks
Infonomics I: Business Information Economics and Data Monetization (Coursera) Coursera
University of Illinois at Urbana-Champaign

Infonomics I: Business Information Economics and Data Monetization (Coursera)

Thriving in the Information Age compels organizations to deploy information as an actual business asset, not as an IT asset or merely as a business byproduct. This demands creativity in conceiving and implementing new ways to generate economic benefits from the wide array of information assets available to an organization. Unfortunately, information too frequently is underappreciated and therefore underutilized.

Jun 22nd 2026
4 Weeks
The Importance of Listening (Coursera) Coursera
Northwestern University

The Importance of Listening (Coursera)

In this second MOOC in the Social Marketing Specialization - "The Importance of Listening" - you will go deep into the Big Data of social and gain a more complete picture of what can be learned from interactions on social sites. You will be amazed at just how much information can be extracted from a single post, picture, or video.

Jun 22nd 2026
4 Weeks
Introduction to Structured Query Language (SQL) (Coursera) Coursera
University of Michigan

Introduction to Structured Query Language (SQL) (Coursera)

In this course, you'll walk through installation steps for installing a text editor, installing MAMP or XAMPP (or equivalent) and creating a MySql Database. You'll learn about single table queries and the basic syntax of the SQL language, as well as database design with multiple tables, foreign keys, and the JOIN operation. Lastly, you'll learn to model many-to-many relationships like those needed to represent users, roles, and courses.

Jun 22nd 2026
4 Weeks
Building Scalable Java Microservices with Spring Boot and Spring Cloud (Coursera) Coursera
Google Cloud

Building Scalable Java Microservices with Spring Boot and Spring Cloud (Coursera)

"Microservices" describes a software design pattern in which an application is a collection of loosely coupled services. These services are fine-grained, and can be individually maintained and scaled. The microservices architecture is ideal for the public cloud, with its focus on elastic scaling with on-demand resources. In this course, you will learn how to build Java applications using Spring Boot and Spring Cloud on Google Cloud Platform.

Jun 23rd 2026
2 Weeks
Deploying Machine Learning Models (Coursera) Coursera
University of California, San Diego

Deploying Machine Learning Models (Coursera)

In this course we will learn about Recommender Systems (which we will study for the Capstone project), and also look at deployment issues for data products. By the end of this course, you should be able to implement a working recommender system (e.g. to predict ratings, or generate lists of related products), and you should understand the tools and techniques required to deploy such a working system on real-world, large-scale datasets.

Jun 22nd 2026
4 Weeks