You, This Course and Us
What does Donald Rumsfeld have to do with data analysis? Why is Spark so cool? An introduction to RDDs - Resilient Distributed Datasets Built-in libraries for Spark Installing Spark The PySpark Shell Transformations and Actions See it in Action : Munging Airlines Data with PySpark - I [For Linux/Mac OS Shell Newbies] Path and other Environment Variables Downloads
RDD Characteristics: Partitions and Immutability RDD Characteristics: Lineage, RDDs know where they came from What can you do with RDDs? Create your first RDD from a file Average distance travelled by a flight using map() and reduce() operations Get delayed flights using filter(), cache data using Persist() Average flight delay in one-step using aggregate() Frequency histogram of delays using countByValue() See it in Action : Analyzing Airlines Data with PySprak - II Downloads
Special Transformations and Actions Average delay per airport, use reduceByKey(), MapValues() and Join() Average delay per airport in one step using combineByKey() Get the top airports by delay using sortBy() Lookup airport descriptions using lookup(), collectAsMap(). broadcast() See it in Action : Analyzing Airlines Data with PySpark - III Downloads
Get information from individual processing nodes using accumulators See it in Action : Using an Accumulator variable Long running programs using spark-submit See it in Action : Running a Python script with Spark-Submit Behind the scenes: What happens when a Spark script runs? Running MapReduce operations See it in Action : MapReduce with Spark Downloads
The Java API and Function objects Pair RDDs in Java Running Java code Installing Maven See it in Action : Running a Spark Job with Java Downloads
What is PageRank? The PageRank algorithm Implement PageRank in Spark Join optimization in PageRank using Custom Partitioning See it Action : The PageRank algorithm using Spark Downloads
Dataframes: RDDs + Tables See it in Action : Dataframes and Spark SQL Downloads
Collaborative filtering algorithms Latent Factor Analysis with the Alternating Least Squares method Music recommendations using the Audioscrobbler dataset Implement code in Spark using MLlib Downloads
Introduction to streaming Implement stream processing in Spark using Dstreams Stateful transformations using sliding windows See it in Action : Spark Streaming Downloads
The Marvel social network using Graphs Downloads
What will I learn?
- Use Spark for a variety of analytics and Machine Learning tasks.
- Implement complex algorithms like PageRank or Music Recommendations.
- Work with a variety of datasets from Airline delays to Twitter, Web graphs, Social networks and Product Ratings.
- Use all the different features and libraries of Spark : RDDs, Dataframes, Spark SQL, MLlib, Spark Streaming and GraphX.
About the course
This course is taught by a 4 person team including 2 Stanford-educated, ex-Googlers and 2 ex-Flipkart Lead Analysts. This team has decades of practical experience in working with Java and with billions of rows of data. Get your data to fly using Spark for analytics, machine learning and data science.
Let’s parse that.
- What's Spark? If you are an analyst or a data scientist, you're used to having multiple systems for working with data. SQL, Python, R, Java, etc. With Spark, you have a single engine where you can explore and play with large amounts of data, run machine learning algorithms and then use the same system to productionize your code.
- Analytics: Using Spark and Python you can analyze and explore your data in an interactive environment with fast feedback. The course will show how to leverage the power of RDDs and Dataframes to manipulate data with ease.
- Machine Learning and Data Science: Spark's core functionality and built-in libraries make it easy to implement complex algorithms like Recommendations with very few lines of code. We'll cover a variety of datasets and algorithms including PageRank, MapReduce and Graph datasets.
Lot's of cool stuff!
- Music Recommendations using Alternating Least Squares and the Audioscrobbler dataset.
- Dataframes and Spark SQL to work with Twitter data.
- Using the PageRank algorithm with Google web graph dataset.
- Using Spark Streaming for stream processing.
- Working with graph data using the Marvel Social network dataset.
.. and of course all the Spark basic and advanced features:
- Resilient Distributed Datasets, Transformations (map, filter, flatMap), Actions (reduce, aggregate).
- Pair RDDs , reduceByKey, combineByKey.
- Broadcast and Accumulator variables.
- Spark for MapReduce.
- The Java API for Spark.
- Spark SQL, Spark Streaming, MLlib and GraphFrames (GraphX for Python).
Who should take the course?
- Analysts who want to leverage Spark for analyzing interesting datasets.
- Data Scientists who want a single engine for analyzing and modelling data as well as productionizing it.
- Engineers who want to use a distributed computing engine for batch or stream processing or both.
Pre-requisites & Requirements
- The course assumes knowledge of Python. You can write Python code directly in the PySpark shell. If you already have IPython Notebook installed, we'll show you how to configure it for Spark.
- For the Java section, we assume basic knowledge of Java. An IDE which supports Maven, like IntelliJ IDEA/Eclipse would be helpful.
- All examples work with or without Hadoop. If you would like to use Spark with Hadoop, you'll need to have Hadoop installed (either in pseudo-distributed or cluster mode).