# An Executable Sequential Specification for Spark Aggregation

arXiv: https://arxiv.org/abs/1702.02439 · HTML: https://mlsanity.com/paper/1702.02439/

## Key facts

- Cited by 1 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 8 Feb 2017.

## Built on by (most cited first, 1 of 1)

- [Creating Knowledge Graphs Subsets using Shape Expressions](https://mlsanity.com/paper/2110.11709/) (2021)

## Abstract (arXiv)

Spark is a new promising platform for scalable data-parallel computation. It provides several high-level application programming interfaces (APIs) to perform parallel data aggregation. Since execution of parallel aggregation in Spark is inherently non-deterministic, a natural requirement for Spark programs is to give the same result for any execution on the same data set. We present PureSpark, an executable formal Haskell specification for Spark aggregate combinators. Our specification allows us to deduce the precise condition for deterministic outcomes from Spark aggregation. We report case studies analyzing deterministic outcomes and correctness of Spark programs.
