
A brief introduction to the course, and then we'll get your development environment for Spark and Scala all set up on your desktop, using IntelliJ and SBT. A quick test application will confirm Spark is working on your system!
Apache Spark 3 was released in early 2020 - here's what's new, what's improved, and what's deprecated.
We'll go over the basic syntax and structure of Scala code with lots of examples. It's backwards from most other languages, but you quickly get used to it.
We'll go over the basic syntax and structure of Scala code with lots of examples. It's backwards from most other languages, but you quickly get used to it. Part 2 of 2, with some hands-on practice at the end.
Scala is a functional programming language, and so functions are central to the language. We'll go over the many ways functions can be declared and used in Scala, and practice what you've learned.
We'll cover the common data structures in Scala such as Map and List, and put them into practice.
The core object of Spark programming is the Resilient Distributed Dataset, or RDD. Once you know how to use RDD's, you know how to use Spark. We'll go over what they are, and what you can do with them.
Now that we understand Scala and have the theory of Spark behind us, let's start with a simple example of using RDD's to count up how many of each rating exists in the MovieLens data set.
How does Spark convert your script into a Directed Acyclic Graph and figure out how to distribute it on a cluster? Understanding how this process works under the hood can be important in writing optimal Spark driver scripts.
RDD's that contain a tuple of two values are key/value RDD's, and you can use them much like you might use a NoSQL data store. We'll use key/value RDD's to figure out the average number of friends by age in some fake social network data.
We'll run the average friends by age example on your desktop, and give you some ideas for further extending this script on your own.
We'll cover how to filter data out of an RDD efficiently, and illustrate this with a new example that finds the minimum temperature by location using real weather data.
We'll run our minimum temperature by location example, and modify it to find maximum temperatures as well. Plus, some ideas for extending this script on your own.
flatmap() on an RDD can return variable amounts of new entries into the resulting RDD. We'll use this as part of a hands-on example that finds how often each word is used inside a real book's text.
We extend the previous lecture's example by using regular expressions to better extract words from our book.
Finally, we sort the final results to see what the most common words in this book really are! And some ideas to extend this script on your own.
Your assignment: write a script that finds the total amount spent per customer using some fabricated e-commerce data, using what you've learned so far.
We'll review my solution to the previous lecture's assignment, and challenge you further to sort your results to find the biggest spenders.
Check your results for finding the biggest spenders in our e-commerce data against my own solution.
Understand SparkSQL and the DataFrame and DataSet API's used for querying structured data in an efficient, scalable manner.
We'll revisit our fabricated social network data, but load it into a DataFrame and analyze it with actual SQL queries!
We'll analyze our social network data another way - this time using SQL-like functions on a DataSet, instead of actual SQL query strings.
Earlier we broke down the average number of friends by age using RDD's - see if you can do it using DataSets instead!
We'll revisit our movie ratings data set, and start off with a simple example to find the most-rated movie.
Broadcast variables can be used to share small amounts of data to all of the machines on your cluster. We'll use them to share a lookup table of movie ID's to movie names, and use that to get movie names in our final results.
We introduce the Marvel superhero social network data set, and write a script to find the most-connected superhero in it. It's not who you might think!
As a more complex example, we'll apply a breadth-first-search (BFS) algorithm to the Marvel dataset to compute the degrees of separation between any two superheroes. In this lecture, we go over how BFS works.
We'll go over our strategy for implementing BFS within a Spark script that can be distributed, and introduce the use of Accumulators to maintain running totals that are synced across a cluster.
Finally, we'll review the code for finding the degrees of separation using breadth-first-search, run it, and see the results!
Back to our movie ratings data - we'll discover movies that are similar to each other just based on user ratings. We'll cover the algorithm, and how to implement it as a Spark script.
We'll run our movie similarties script and see the results.
Your challenge: make the movie similarity results even better! Here are some ideas for you to try out.
In a production environment, you'll use spark-submit to start your driver scripts from a command line, cron job, or the like. We'll cover the details on what you need to do differently in this case.
Spark / Scala scripts that have external dependencies can be bundled up into self-contained packages using the SBT tool. We'll use SBT to package up our movie similarities script as an exercise.
Amazon Web Services (AWS) offers the Elastic MapReduce service (EMR,) which gives us a way to rent time on a Hadoop cluster of our choosing - with Spark pre-installed on it. We'll use EMR to illustrate running a Spark script on a real cluster, so let's go over what EMR is and how it works first.
Let's compute movie similarities on a real cluster in the cloud, using one million user ratings!
Explicitly partitioning your Datasets and RDD's can be an important optimization; we'll go over when and how to do this.
Other tips and tricks for taking your script to a real cluster and getting it to run as you expect.
How to troubleshoot Spark jobs on a cluster using the Spark UI and logs, and more on managing dependencies of your script and data.
MLLib offers several distributed machine learning algorithms that you can run on a Spark cluster. We'll cover what MLLib can do and how it fits in.
We'll use MLLib's Alternating Least Squares recommender algorithm to produce movie recommendations using our MovieLens ratings data. The results are... unexpected!
A brief overview of what linear regression is and how it works, followed by a hands-on example of finding a regression and applying it to fabricated page speed vs. revenue data.
We'll run our Spark ML example of linear regression, using DataFrames.
Spark Streaming allows you create Spark driver scripts that run indefinitely, continually processing data as it streams in! We'll cover how it works and what it can do, using the original DStream micro-batch API.
Structured Streaming is a newer DataFrame-based API in Spark for writing continuous applications.
We cover Spark's GraphX library and how it works.
We'll revisit our "superhero degrees of separation" example, and see how its breadth-first-search algorithm could be implemented using Pregel and GraphX.
We'll use GraphX and Pregel to recreate our earlier results analyzing the superhero social network data - but with a lot less code!
You made it to the end! Here are some book recommendations if you want to learn more, as well as some career advice on landing a job in "big data".
Spark와 Scala를 함께 배우는 강의!
20개 이상의 실제 예시 포함!
Spark의 기초부터 시작하여 다양한 응용까지 All in one!
스칼라 단기 집중 강의 포함!
Amazon 및 IMDb의 전 엔지니어이자 선임 관리자로부터 배우는 실습 위주 수업!
*프로그래밍을 처음 접한다면 수업을 진행하기 어려울 수 있습니다. 프로그래밍 기초 강의를 먼저 수강하시는 것을 추천합니다*
Apache Spark 와 Scala로 빅 데이터 다루기 강의를 선택해야 하는 이유
데이터 분석 문제를 Spark로 프레이밍 하는 기술을 배우고, 20개 이상의 실습 예제를 통해서 완벽히 마스터 할 수 있습니다.
수강 후에는 몇 분만에 클라우드에서 GB 크기의 정보를 분석하는 코드를 실행할 수 있게 됩니다.
Spark는 Scala 프로그래밍 언어를 사용할 때 가장 잘 작동하며, 이 강의는 스칼라 단기 집중 강의를 포함하므로 빠르게 배울 수 있습니다.
(만약 Python에 더 익숙한 사용자라면 다른 강의를 추천 드립니다)
이 강의에는 재미있는 실습이 포함 되어 있습니다. Spark를 사용하여 영화 등급 데이터와 책의 텍스트를 분석하는 몇 가지 간단한 예로 시작해서 기본기를 배운 후에는, 더 복잡하고 흥미로운 작업을 진행합니다. 백만개의 영화 등급을 사용하여 서로 유사한 영화를 찾을 것이고, 이 과정에서 여러분들이 좋아할 만한 새로운 영화를 발견할 수도 있을 것입니다! 여러분은 슈퍼히어로의 사회적 그래프를 분석하고 가장 "인기 있는" 슈퍼히어로가 누구인지 배우고 슈퍼히어로 사이의 "Degree of Separation"를 찾는 시스템을 개발할 것입니다. 모든 마블 슈퍼히어로들은 스파이더맨과 얼마나 연결되어 있을까요?
이 강의를 통해 그 답을 찾을 수 있습니다.
또한, 이 강의는 실습 위주의 강의입니다. Amazon의 Elastic MapReduce 서비스를 사용하여 자체 시스템과 클라우드 모두에서 실제 코드를 함께 작성, 분석 및 실행할 때 강사와 함께 대부분의 시간을 보내게 됩니다. 7시간 분량의 영상 내용이 포함되어 있으며, 20개 이상의 실제 예시는 복잡성이 증가함에 따라 스스로 구축하고 실행하고 연구할 수 있습니다.
Apache Spark 와 Scala로 빅 데이터 다루기 세부 커리큘럼
빅데이터 분석 문제를 Apache Spark 스크립트로 프레임화
Scala 프로그래밍 언어를 사용하여 분산 코드 개발
파티셔닝, 캐싱 및 기타 기술을 통해 Spark 작업 최적화
Hadoop 클러스터에서 Spark 스크립트 구축, 디플로이 및 실행
Spark Streaming으로 연속적인 데이터 스트림 처리
SparkSQL, DataSets 및 DataFrames를 사용하여 구조화된 데이터 변환
GraphX를 사용하여 그래프 구조 순회 및 분석
Spark의 머신 러닝으로 방대한 데이터 세트 분석
Amazon 및 IMDb의 전 엔지니어이자 선임 관리자 Frank Kane 강사의 한마디!
완전히 업데이트 된 새로운 강의로 출시되었습니다!
Spark 3, IntelliJ, 구조적 스트리밍 및 DataSet API에 대한 더 강력한 초점을 위해 완전히 업데이트되어 다시 녹음되었습니다.
Spark SQL, Spark Streaming과 같은 최신 Spark 기술과 Gradient Boosted Trees와 같은 고급 모델도 다룰 것입니다.
"빅 데이터" 분석은 아주 인기있고 매우 가치 있는 기술입니다. 이 강의는 빅 데이터에서 가장 인기 있는 기술을 알려줍니다. 바로 Apache Spark 입니다. 아마존, 이베이, NASA JPL 및 Yahoo를 포함한 고용주는 모두 Spark를 사용하여 내결함성 Hadoop 클러스터 전반에 걸쳐 방대한 데이터 세트에서 의미를 빠르게 추출합니다. 집에서 자신의 Windows 시스템을 사용하여 동일한 기술을 배우게 될 텐데, 생각하는 것보다 쉬울 것이며 Amazon 및 IMDb의 전 엔지니어이자 수석 관리자에게 배우게 될 것입니다.
여러분의 일정에 따라 여러분의 속도로 진행하세요. 이 강의는 Spark SQL, Spark Streaming, GraphX를 비롯한 다른 Spark 기반 기술에 대한 개요로 마무리됩니다.
강의를 들으시고 강의와 관련하여 궁금하신 점은 무엇이든 Q&A에 남기실 수 있지만, 꼭 영어로 남겨주세요. 그래야 답변을 드릴 수 있습니다. :)
지금 등록하고 이 강의를 즐겨보세요!
-Frank
P.S. 제 강의에 대한 한 수강생의 리뷰 하나를 소개해 드립니다:
"나는 Frank의 "Apache Spark 2 with Scala - Hands On with Big Data!" 강의를 통해 처음으로 Spark를 공부했습니다. Scala에 대한 지식과 가장 중요한 Spark 응용 프로그램의 실제 사례를 얻는 것은 저에게 훌륭한 출발점이 되었습니다. 모든 관련 Spark 핵심 개념, RDD, 데이터 프레임 및 데이터 세트, Spark Streaming, AWS EMR에 대한 이해를 주었습니다. 완강 후 몇 개월 만에, 저는 이 강의에서 얻은 지식을 사용하여 현재 회사에서 주로 Spark 응용 프로그램 작업을 제안했습니다. 그 이후로 나는 계속해서 Spark로 작업했습니다. Frank는 개념을 잘 단순화하고 강의 방식은 따라하고 계속하기 쉽기 때문에 나는 Frank 강의를 강력히 추천합니다! " - 조이 파허티