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. 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.
提供方

课程信息
您将获得的技能
- Scala Programming
- Big Data
- Apache Spark
- SQL
提供方
授课大纲 - 您将从这门课程中学到什么
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.
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.
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.
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.
审阅
- 5 stars73.08%
- 4 stars21.12%
- 3 stars4.38%
- 2 stars0.66%
- 1 star0.74%
来自BIG DATA ANALYSIS WITH SCALA AND SPARK的热门评论
Excellent course! It's clear the instructor put a ton of thought and hard work into this. I learned a lot that I wouldn't have learned without taking this class. Thank you, Heather!
Awesome course and awesome teacher! Nevertheless, to grasp the most of this course, you should do the previous 3 courses of the "Functional Programming in Scala" specialization.
Great course to get going with Apache Spark. Would recommend to someone who has java or scala experience already and wants to learn about distributed processing.
the theory is very clear and well explained.
the practical assignments are a little bit ambiguous but they are overall very good and challenging.
highly recommended!
关于 Functional Programming in Scala 专项课程
Discover how to write elegant code that works the first time it is run.

常见问题
我什么时候能够访问课程视频和作业?
我订阅此专项课程后会得到什么?
有助学金吗?
还有其他问题吗?请访问 学生帮助中心。