Skip to main content

What is a Resilient Distributed Dataset (RDD)?

Understand Spark's foundational data structure for distributed, fault-tolerant parallel processing

4 Personas Analytics AIBI 6

Summary

  • Understand what RDDs are and how they serve as immutable, partitioned data collections for parallel processing in Apache Spark
  • Learn the five key scenarios when RDDs are the right choice, including unstructured data and low-level transformation control
  • Explore how RDDs relate to DataFrames and Datasets and when to use each API

What is Resilient Distributed Dataset?

RDD was the primary user-facing API in Spark since its inception. At the core, an RDD is an immutable distributed collection of elements of your data, partitioned across nodes in your cluster that can be operated in parallel with a low-level API that offers transformations and actions.

5 Reasons on When to use RDDs

  1. You want low-level transformation and actions and control on your dataset;
  2. Your data is unstructured, such as media streams or streams of text;
  3. You want to manipulate your data with functional programming constructs than domain specific expressions;
  4. You don’t care about imposing a schema, such as columnar format while processing or accessing data attributes by name or column; and
  5. You can forgo some optimization and performance benefits available with DataFrames and Datasets for structured and semi-structured data.
A 5X LEADER

Gartner®: Databricks Cloud Database Leader

What happens to RDDs in Apache Spark 2.0?

Are RDDs being relegated as second class citizens? Are they being deprecated? The answer is a resounding NO! What’s more is you can seamlessly move between DataFrame or Dataset and RDDs at will—by simple API method calls—and DataFrames and Datasets are built on top of RDDs.

Additional Resources

Never miss a Databricks post

Subscribe to our blog and get the latest posts delivered to your inbox