Chapter 10. Practical Data Design Patterns

The goal of this chapter is to introduce some practical data design patterns that are useful in solving common data problems. We will focus on actual design patterns that are used in big data solutions and deployed in production environments.

As in the previous chapter, I’ll provide simple examples to illustrate the use of each one and show you how to use Spark’s transformations to implement them. I’ll also talk more about the concept of monoids, to help you better understand reduction transformations.

The best design patterns book available is the iconic computer science book Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (known as The “Gang of Four”). Rather than present data design patterns similar to those in the “Gang of Four” book, I will focus on practical, informal data design patterns that have been used in production environments.

The data design patterns that we’ll cover in this chapter can help us to write scalable solutions to be deployed on Spark clusters. However, be aware that when it comes to adopting and using design patterns, there is no silver bullet. Every pattern should be tested for performance and scalability using real data, in an environment similar to your production environment.

Note

For a general introduction to design patterns in software engineering, see the aforementioned Design Patterns: Elements of Reusable Object-Oriented ...

Get Data Algorithms with Spark now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.