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

Security and Privacy for Big Data - Part 2 (Coursera) Coursera
EIT Digital

Security and Privacy for Big Data - Part 2 (Coursera)

This course sensitizes regarding privacy and data protection in Big Data environments. You will discover privacy preserving methodologies, as well as data protection regulations and concepts in your Big Data system. By the end of the course, you will be ready to plan your next Big Data project successfully, ensuring that all privacy and data protection related issues are under control.

Nov 16th 2026
1 Week
Infonomics II: Business Information Management and Measurement (Coursera) Coursera
University of Illinois at Urbana-Champaign

Infonomics II: Business Information Management and Measurement (Coursera)

Even decades into the Information Age, accounting practices yet fail to recognize the financial value of information. Moreover, traditional asset management practices fail to recognize information as an asset to be managed with earnest discipline. This has led to a business culture of complacence, and the inability for most organizations to fully leverage available information assets. This second course in the two-part Infonomics series explores how and why to adapt well-honed asset management principles and practices to information, and how to apply accepted and new valuation models to gauge information’s potential and realized economic benefits.

Nov 9th 2026
4 Weeks
Exam Prep DP-300: Azure Database Administrator Associate (Coursera) Coursera
Whizlabs

Exam Prep DP-300: Azure Database Administrator Associate (Coursera)

Database administration is one of the basic necessities of every enterprise. The growth of cloud and On-premises relational databases continues to create the need for professional database administrators. Therefore, an updated certification such as DP-300 could open up favorable options for employment of database administrators.

Nov 9th 2026
5-12 Weeks
SQL for Security Specialist (Coursera) Coursera
Codio

SQL for Security Specialist (Coursera)

This course is designed specifically for SQL Security Specialists with a focus on PostgreSQL. It assumes a solid foundation in SQL and guides learners through advanced topics specific to PostgreSQL. You'll explore crucial concepts, such as complex queries, performance optimization, and database administration tasks unique to PostgreSQL.

Nov 9th 2026
3 Weeks
Big Data Integration and Processing (Coursera) Coursera
University of California, San Diego

Big Data Integration and Processing (Coursera)

At the end of the course, you will be able to: Retrieve data from example database and big data management systems; Describe the connections between data management operations and the big data processing patterns needed to utilize them in large-scale analytical applications; Identify when a big data problem needs data integration; Execute simple big data integration and processing on Hadoop and Spark platforms.

Nov 2nd 2026
5-12 Weeks
Big Data Analysis with Scala and Spark (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Big Data Analysis with Scala and Spark (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.

Nov 9th 2026
4 Weeks
Introduction to Relational Databases (Coursera) Coursera
Illinois Tech

Introduction to Relational Databases (Coursera)

Database management systems are a crucial part of most large-scale industry and open-source systems. This course will introduce you to important concepts of database systems and design. We will learn what relational databases are, what they are used for, the theory underlying their design, and how to query and modify a database using the declarative SQL language.

Nov 9th 2026
4 Weeks
Introduction to PySpark (Coursera) Coursera
Edureka

Introduction to PySpark (Coursera)

Welcome to Introduction to PySpark, a short course strategically crafted to empower you with the skills needed to assess the concepts of Big Data Management and efficiently perform data analysis using PySpark. Throughout this short course, you will acquire the expertise to perform data processing with PySpark, enabling you to efficiently handle large-scale datasets, conduct advanced analytics, and derive valuable insights from diverse data sources.

Nov 9th 2026
1 Week
SQL: A Practical Introduction for Querying Databases (Coursera) Coursera
IBM

SQL: A Practical Introduction for Querying Databases (Coursera)

Much of the world's data lives in databases. SQL (or Structured Query Language) is a powerful programming language that is used for communicating with and manipulating data in databases. A working knowledge of databases and SQL is a must for anyone who wants to start a career in Data Engineering, Data Warehousing, Data Analytics, Data Science or Business Intelligence. The purpose of this course is to help you learn and apply foundational and intermediate knowledge of the SQL language, and become familiar with many relational database (RDBMS) concepts along the way.

Nov 16th 2026
5-12 Weeks
Snowflake - SnowPro Core Certification Preparation (Coursera) Coursera
Board Infinity

Snowflake - SnowPro Core Certification Preparation (Coursera)

"Snowflake - SnowPro Core Certification Preparation" is a comprehensive course meticulously crafted to guide learners through the essentials of Snowflake, preparing them for the SnowPro Core Certification. Spanning three modules, the course begins with the fundamentals of Snowflake, exploring its architecture, data loading, and modeling. The second module delves into operational and management aspects, including account management, performance optimization, and security.

Nov 9th 2026
3 Weeks
Julia Scientific Programming (Coursera) Coursera
University of Cape Town

Julia Scientific Programming (Coursera)

This four-module course introduces users to Julia as a first language. Julia is a high-level, high-performance dynamic programming language developed specifically for scientific computing. This language will be particularly useful for applications in physics, chemistry, astronomy, engineering, data science, bioinformatics and many more.

Nov 9th 2026
4 Weeks