Big Data Analysis with Scala and Spark (Coursera)

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.

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.
Course 4 of 5 in the Functional Programming in Scala Specialization.

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

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera) Coursera
Hebrew University of Jerusalem

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) (Coursera)

In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform.

Sep 14th 2026
5-12 Weeks
Reproducible Templates for Analysis and Dissemination (Coursera) Coursera
Emory University

Reproducible Templates for Analysis and Dissemination (Coursera)

This course will assist you with recreating work that a previous coworker completed, revisiting a project you abandoned some time ago, or simply reproducing a document with a consistent format and workflow. Incomplete information about how the work was done, where the files are, and which is the most recent version can give rise to many complications.

Sep 14th 2026
5-12 Weeks
Cadeia de Suprimentos na Nuvem (Coursera) Coursera
FIA Business School

Cadeia de Suprimentos na Nuvem (Coursera)

Nossas boas-vindas ao Curso Cadeia de Suprimentos na Nuvem. Neste curso, você aprenderá como o supply chain pode ampliar o valor da empresa explorando as diversas ferramentas disponíveis em cloud para potencializar a visibilidade e a responsividade da cadeia, melhorando o nível de serviço prestado aos clientes.

Sep 14th 2026
5-12 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.

Sep 14th 2026
4 Weeks
Creative Programming for Digital Media & Mobile Apps (Coursera) Coursera
University of London,Goldsmiths, University of London

Creative Programming for Digital Media & Mobile Apps (Coursera)

This course is for anyone who would like to apply their technical skills to creative work ranging from video games to art installations to interactive music, and also for artists who would like to use programming in their artistic practice. This course will teach you how to develop and apply programming skills to creative work. This is an important skill within the development of creative mobile applications, digital music and video games. It will teach the technical skills needed to write software that make use of images, audio and graphics, and will concentrate on the application of these skills to creative projects. Additional resources will be provided for students with no programming background.

Sep 14th 2026
5-12 Weeks
Business Statistics and Analysis Capstone (Coursera) Coursera
Rice University

Business Statistics and Analysis Capstone (Coursera)

The Business Statistics and Analysis Capstone is an opportunity to apply various skills developed across the four courses in the specialization to a real life data. The Capstone, in collaboration with an industry partner uses publicly available ‘Housing Data’ to pose various questions typically a client would pose to a data analyst. Your job is to do the relevant statistical analysis and report your findings in response to the questions in a way that anyone can understand.

Sep 14th 2026
4 Weeks
Research Design: Inquiry and Discovery (Coursera) Coursera
University of North Texas

Research Design: Inquiry and Discovery (Coursera)

The main purpose of this course is to focus on good questions and how to answer them. This is essential to making considered decisions as a leader in any organization or in your life overall. Topics will include the basis of human curiosity, development of questions, connections between questions and approaches to information gathering design, variable measurement, sampling, the differences between experimental and non-experimental designs, data analysis, reporting and the ethics of inquiry projects.

Sep 14th 2026
4 Weeks
Fundamentos de Excel para Negocios (Coursera) Coursera
Universidad Austral

Fundamentos de Excel para Negocios (Coursera)

Cuando finalices este curso habrás logrado un gran número de habilidades como introducir información, ordenarla, manipularla, realizar cálculos de diversa índole (matemáticos, trigonométricos, estadísticos, financieros, ingenieriles, probabilísticos), extraer conclusiones, trabajar con fechas y horas, construir gráficos, imprimir reportes y muchas más.

Sep 14th 2026
5-12 Weeks
Algorithms, Part II (Coursera) Coursera
Princeton University

Algorithms, Part II (Coursera)

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

Sep 14th 2026
5-12 Weeks