There are a few cases where case classes might not work; one of these cases is where case classes cannot take more than 22 fields. Another case can be that you do not know about the schema beforehand. In this approach, data is loaded as an RDD of the Row objects. The schema is created separately using the StructType and StructField objects, which represent a table and a field, respectively. The schema is applied to the Row RDD to create a DataFrame.
-
Book Overview & Buying
-
Table Of Contents
Apache Spark 2.x Cookbook
By :
Apache Spark 2.x Cookbook
By:
Overview of this book
While Apache Spark 1.x gained a lot of traction and adoption in the early years, Spark 2.x delivers notable improvements in the areas of API, schema awareness, Performance, Structured Streaming, and simplifying building blocks to build better, faster, smarter, and more accessible big data applications. This book uncovers all these features in the form of structured recipes to analyze and mature large and complex sets of data.
Starting with installing and configuring Apache Spark with various cluster managers, you will learn to set up development environments. Further on, you will be introduced to working with RDDs, DataFrames and Datasets to operate on schema aware data, and real-time streaming with various sources such as Twitter Stream and Apache Kafka. You will also work through recipes on machine learning, including supervised learning, unsupervised learning & recommendation engines in Spark.
Last but not least, the final few chapters delve deeper into the concepts of graph processing using GraphX, securing your implementations, cluster optimization, and troubleshooting.
Table of Contents (13 chapters)
Preface
Getting Started with Apache Spark
Developing Applications with Spark
Spark SQL
Working with External Data Sources
Spark Streaming
Getting Started with Machine Learning
Supervised Learning with MLlib — Regression
Supervised Learning with MLlib — Classification
Unsupervised Learning
Recommendations Using Collaborative Filtering
Graph Processing Using GraphX and GraphFrames