Chapter 9. Classic Data Design Patterns

This chapter discusses some of the most fundamental and classic data design patterns used in the vast majority of big data solutions. Even though these are simple design patterns, they are useful in solving many common data problems, and I’ve used many of them in examples in this book. In this chapter, I will present PySpark implementations of the following design patterns:

  1. Input-Map-Output

  2. Input-Filter-Output

  3. Input-Map-Reduce-Output

  4. Input-Multiple-Maps-Reduce-Output

  5. Input-Map-Combiner-Reduce-Output

  6. Input-MapPartitions-Reduce-Output

  7. Input-Inverted-Index-Pattern-Output

Before we get started, however, I’d like to address the question of what I mean by “design patterns.” In computer science and software engineering, given a commonly occurring problem, a design pattern is a reusable solution to that problem. It’s a template or best practice for how to solve a problem, not a finished design that can be transformed directly into code. The patterns presented in this chapter will equip you to handle a wide range of data analysis tasks.

Note

The data design patterns discussed in this chapter are basic patterns. You can create your own, depending on your requirements. For additional examples, see “MapReduce: Simplified Data Processing on Large Clusters” by Jeffrey Dean and Sanjay Ghemawat.

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.