Author: Petar Zecevic & Marko Bonaci
Date: January 2017
Audience: Java, Scala, or Python programmers
Reviewer: Kay Ewbank
This book intended to go beyond the basics and enable you to create useful applications with Spark, comes complete with sample code and a case study.
The Spark data processing environment is gaining ever more ground among data scientists wanting to analyze distributed data, and this book is designed to get you to a point where you can do real work using Spark.
The book starts with an introduction to Spark, after which the Spark fundamentals are introduced. In practical terms, this means the spark-in-action VM, using the Spark shell and writing apps in Spark, the basics of RDD (resilient distributed dataset) actions, transformations, and double RDD functions.
There's a chapter on writing Spark applications in Eclipse that looks at aspects such as loading JSON, aggregating data, and broadcast variables. The Spark API is then looked at in more detail.
Part 2 of the book looks at other elements of the Spark family, with chapters on Spark SQL, ingesting data with Spark Streaming, and two chapters on Spark's machine learning libraries The first of these chapters covers the basics of MLLib, linear algebra, and linear regression. The second covers Spark's updated ML library, logistic regression, decision trees, and K-means clustering. This part of the book ends with a chapter on GraphX and its use in graph processing.
A section on Spark Ops comes next, with chapters on running Spark, running a Spark standalone cluster, and running on YARN and Mesos.
The book ends with a section on bringing it all together. This consists of a case study chapter on creating a real-time dashboard; and a final chapter on deep learning on Spark with H20.
This edition has been updated to cover Spark 2, and it addresses the changes from MLLib to ML, for example.. There's a fair amount of sample code, all in Scala, though Java and Python equivalents are available on Github. One nice touch is a VM with Spark installed and working which you can use to run the examples in the book. There's a PDF and Kindle edition that you can download when you buy the paper edition.
This isn't a book for Spark beginners; it's intended more to get you to the stage of creating real-world applications using Spark. It's not an easy read, but it is thorough, and will take you beyond the beginner or dabbler stage.
Spark is one of the topics covered in Reading Your Way Into Big Data, an article on Programmer's Bookshelf in which Ian Stirk provides a roadmap of the reading required to take you from novice to competent in areas relating to data science.