A Guide To Scalable Machine Learning with Apache Spark

A Guide To Scalable Machine Learning with Apache Spark

What is Apache Spark?

Infoworld describes Spark as a data processing framework that can quickly perform processing tasks on very large data sets and can also distribute data processing tasks across multiple computers, either on its own or in tandem with other distributed computing tools. These two qualities are key to the big data and machine learning worlds, which require the marshaling of massive computing power to crunch through large data stores. Spark also takes some of the programming burdens of these tasks off the shoulders of developers with an easy-to-use API that abstracts away much of the grunt work of distributed computing and big data processing.

What is the story of Spark?

As per Towards Data Science, in the 2010s, when RAM prices came down, Spark was born with a big design change to store all intermediate data to RAM, instead of disk.

Spark was good for both:

  1. i) Data-heavy tasks: as it was using HDFS &
  2. ii) Compute-heavy tasks: as it uses RAM instead of disk, to store intermediate outputs. E.g.: Iterative solutions

As Spark could utilize RAM, it became an efficient solution for iterative tasks in Machine Learning like Stochastic Gradient Descent (SGD). So is the reason, Spark MLlib became so popular for Machine Learning, in contrast to Hadoop’s Mahout.

Furthermore, to do Distributed Deep-Learning with TF you can use,

  1. Multiple GPUs on the same box (or)
  2. Multiple GPUs on different boxes (GPU Cluster)

While today’s supercomputers use GPU Cluster for compute-intensive tasks, you can install Spark in such a cluster to make it suitable for tasks such as distributed deep-learning, which are both compute and data-intensive.

What is the Scalable Machine Learning with Apache Spark course all about?

In this course, you will experience the full data science workflow, including data exploration, feature engineering, model building, and hyperparameter tuning. You will have built an end-to-end distributed machine learning pipeline ready for production by the end of this course.

This course guides students through the process of building machine learning solutions using Spark. You will build and tune ML models with SparkML using transformers, estimators, and pipelines. This course highlights some of the key differences between SparkML and single-node libraries such as sci-kit-learn. Furthermore, you will reproduce your experiments and version your models using MLflow.

You will also integrate 3rd party libraries into Spark workloads, such as XGBoost. In addition, you will leverage Spark to scale inference of single-node models and parallelize hyperparameter tuning. This course includes hands-on labs and concludes with a collaborative capstone project. All the notebooks are available in Python, and Scala as well where available.

Skills Gained:

  • Create data processing pipelines with Spark
  • Build and tune machine learning models with SparkML
  • Track, version, and deploy models with MLflow
  • Perform distributed hyperparameter tuning with Hyperopt
  • Use Spark to scale the inference of single-node models

Who Can Benefit?

  • Data scientist
  • Machine learning engineer


Intermediate experience with Python Beginning experience with the PySpark DataFrame API (or have taken the Apache Spark Programming with Databricks class) Working knowledge of machine learning and data science


If you’re looking to learn a big data platform that is fast, flexible, and developer-friendly, then Apache Spark is the answer! It has an in-memory data engine which means that it can perform tasks up to one hundred times faster than other datasets processing big data. It is one of the most preferred open-source analytics engines that is used by banks, telecommunications companies, games companies, governments, and all the major tech giants such as Apple, Facebook, IBM, and Microsoft.

To enroll, contact P2L today!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>