Skip to main content

Apache Spark™

Apache Spark is a lightning-fast unified analytics engine for streaming, batch, and AI workloads.

What is Apache Spark?

Apache Spark is an open source unified analytics engine for large-scale data processing. A single engine handles batch processing, real-time streaming, SQL analytics, machine learning, and AI data preparation, using the same APIs across Python, SQL, Scala, Java, and R. Spark runs on a laptop in local mode or across a cluster of thousands of nodes without code changes, and reads from open table formats and data sources including Delta Lake, Apache Iceberg, Parquet, and Apache Kafka.

Apache Spark's data read/write ecosystem.

The largest open source project in data processing

Since its release, Apache Spark has been adopted by enterprises across every major industry. Netflix and OpenAI run Spark at massive scale, processing petabytes of data across large clusters. Apache Spark's project page reports that 80% of the Fortune 500 use it, and independent usage detection estimates that about 74,000 companies run Spark. The community behind it is just as large, with more than 1,000 contributors from hundreds of organizations, over 44k GitHub stars, and roughly 51 million PySpark package downloads a month, and new major features are released every few months.

Who uses Apache Spark, and where it runs

Apache Spark runs in production at tens of thousands of organizations worldwide, from startups to the largest internet and AI companies. Named users include Netflix, OpenAI, Yahoo, eBay, Amazon, IBM, and NASA JPL, among others. See the Apache Spark Powered By Spark page for the full community list. Because Spark is open source, it is also available as a managed service on every major cloud and data platform: Amazon Web Services (via EMR), Google Cloud (via Managed Service for Apache Spark), Microsoft Fabric, Cloudera, and Databricks, the platform built by Spark's original creators.

thumbnail video about apache

The team that started the Spark research project at UC Berkeley founded Databricks in 2013

Apache Spark began in 2009 as a research project in the AMPLab at UC Berkeley, the lab for Algorithms, Machines, and People. Matei Zaharia led the work, with faculty advisors Ion Stoica, Scott Shenker, and Michael Franklin. The project set out to address two limitations of MapReduce: the need to write intermediate results to disk at every stage, and the cost of iterative workloads that hit disk on every pass. Since then, Apache Spark has dominated as the most popular open source data processing engine for ultra-low-latency streaming workloads, batch processing, and AI workloads.

In 2013, seven AMPLab researchers founded Databricks to commercialize and continue the work: Ali Ghodsi, Matei Zaharia, Ion Stoica, Patrick Wendell, Reynold Xin, Andy Konwinski, and Arsalan Tavakoli-Shiraji. The company has contributed to Apache Spark continuously, driving its innovation year after year with major feature releases that build on the project's original vision.

How Apache Spark has evolved

Hosted at the vendor-independent Apache Software Foundation, Apache Spark is 100% open source under the Apache License 2.0. At Databricks, we remain fully committed to that open development model. Together with the Spark community, Databricks continues to contribute heavily to the project through both engineering and community work.

Year

Milestone

2009

Apache Spark began as a research project at UC Berkeley (AMPLab).

2010

The project is open-sourced.

2014

Spark graduates to a top-level Apache project in February, and Spark 1.0 ships in May.

2016

Spark 2.0 unifies the structured APIs on the Catalyst optimizer.

2020

Spark 3.0 adds adaptive query execution.

2023

Spark Connect lands in Spark 3.4 and splits the client from the driver over gRPC.

2025

Spark 4.0 ships in May. Spark 4.1 ships in December with Real-Time Mode and Spark Declarative Pipelines.

How Apache Spark is governed

Apache Spark is hosted by the vendor-independent Apache Software Foundation, and that governance model is a large part of why enterprises standardize on it. No single company can assume, inherit, or capture control of the project, and because the code is released under the Apache License 2.0, anyone can run, extend, or sell Spark. Spark is a graduated top-level Apache project that is maintained and governed rather than controlled.

Benefits of Apache Spark

Apache Spark engine with libraries and data sources.

Speed and real-time processing

Spark is engineered for performance at scale, and it now runs in real time. Real-Time Mode (RTM), a Structured Streaming trigger introduced in Spark 4.1, targets lower-latency stream processing. Stateful processing and Python support are included in Spark 4.3, making it highly competitive with the Flink engine. Spark 4 also lowers the cost of Python workloads: Arrow-optimized Python user-defined functions (UDFs) and Arrow-based PySpark inter-process communication (IPC) are enabled by default in Spark 4.2. The same engine that runs nightly batch jobs also powers live dashboards, fraud detection, and real-time AI inference. Spark processes continuous streams and large batch workloads without switching tools, and it provides end-to-end exactly-once fault tolerance.

Ease of use

Spark has concise, high-level APIs for operating on large and small datasets: over 100 built-in operators and the DataFrame API for structured and semi-structured data. The same code can be written in PySpark (Python), SQL, Scala, Java, or R, and Spark handles distributed execution, optimization, and much of the debugging. Spark Declarative Pipelines (SDP) go a step further by allowing users to declare the tables and transformations they want, with Spark managing the dependencies, orchestration, and processing. Code developed in local mode on a laptop runs unchanged on a cluster.

A unified engine for analytics, ML, and AI

On a single engine, Spark packages higher-level libraries: SQL, streaming, machine learning (MLlib), and graph processing. These combine in a single workflow. The same engine prepares features for machine learning, runs large-scale data prep for AI and LLM workloads, serves real-time and batch pipelines, and queries open table formats directly. What’s more, Spark is not tied to one storage format. It reads and writes Parquet, ORC, JSON, CSV, Avro, and Kafka out of the box, and it works with the open table formats Delta Lake and Apache Iceberg through their Spark connectors.

For example, aggregating raw events into per-user features is one SQL query running on Spark:

Additionally, you can run semantic search using SQL, where one NEAREST BY join returns the closest items for every query vector:

Spark Connect: Notebook/IDE/App to Spark cluster.

Spark Connect

Spark Connect separates the client from the Spark cluster. An application talks to Spark over a thin client that runs outside the cluster, so Spark can be embedded in any application, notebook, IDE, or service. The server upgrades without touching clients, and workloads run from anywhere. Spark Connect is a lightweight way to build and ship Spark applications.

Try Apache Spark on the Databricks cloud for free

Databricks was founded by the original creators of Apache Spark and offers the Spark engine with added performance via Photon, collaborative notebooks, unified governance, and enterprise security, in a fully managed platform.

The open source Apache Spark project can be downloaded here.

Frequently asked questions about Apache Spark

Apache Spark is an open source unified analytics engine for large-scale data processing. One engine handles batch, real-time streaming, SQL, machine learning, and AI data preparation, using the same APIs across Python, SQL, Scala, Java, and R.