Book Image

Apache Spark 2.x for Java Developers

By : Sourav Gulati, Sumit Kumar
Book Image

Apache Spark 2.x for Java Developers

By: Sourav Gulati, Sumit Kumar

Overview of this book

Apache Spark is the buzzword in the big data industry right now, especially with the increasing need for real-time streaming and data processing. While Spark is built on Scala, the Spark Java API exposes all the Spark features available in the Scala version for Java developers. This book will show you how you can implement various functionalities of the Apache Spark framework in Java, without stepping out of your comfort zone. The book starts with an introduction to the Apache Spark 2.x ecosystem, followed by explaining how to install and configure Spark, and refreshes the Java concepts that will be useful to you when consuming Apache Spark's APIs. You will explore RDD and its associated common Action and Transformation Java APIs, set up a production-like clustered environment, and work with Spark SQL. Moving on, you will perform near-real-time processing with Spark streaming, Machine Learning analytics with Spark MLlib, and graph processing with GraphX, all using various Java packages. By the end of the book, you will have a solid foundation in implementing components in the Spark framework in Java to build fast, real-time applications.
Table of Contents (19 chapters)
Title Page
About the Authors
About the Reviewer
Customer Feedback

Advanced actions

Upto now we have covered actions which focused on processing the entire data however big or small it may be. There are use cases where we might just need approximate values, or where we would like an asynchronous action which does not wait for the result, or even just the data from specific partitions. In this section,we will touch upon the appropriate actions that serve these specific requirements.

Approximate actions

In the previous chapter, we came across different methods in which RDD could be sampled to give a randomized output. This works fine as long as we want to debug or test our application. However, in other scenarios we might not want to get results which are accurate but which take a long time to execute, but rather require an approximate result within a certain percentage of error and in a time-bound manner. Spark has introduced approximate algorithms to cater to such needs, where the job can guarantee a result within a stipulated timeframe or/and within an error...