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.07%
- 4 stars21.11%
- 3 stars4.39%
- 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!
Excellent material. Very good flow. Heather has an amazing way of walking through the flow and simplifying the concepts. Great assignments -- takes a bit longer than 3 hours.
Great course with nice explanations of some Spark concepts. The third week was particularly useful for my understanding of Spark shuffling and partitioning. Thanks a lot!
although spark part is taught nicely, it also takes a lot of time to understand the sql part and remember a lot of sql operations as a zero background man in sql
Functional Programming in Scala専門講座について
Discover how to write elegant code that works the first time it is run.

よくある質問
いつ講座や課題にアクセスできるようになりますか?
この専門講座をサブスクライブすると何を行うことができるようになりますか?
学資援助はありますか?
さらに質問がある場合は、受講者ヘルプセンターにアクセスしてください。