Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Apache Spark
  3. deequ

deequ

Apache-2.0Scala2.0.21

A library built on Apache Spark for defining unit tests to measure data quality in large datasets.

GitHubGitHub
3.6k stars584 forks0 contributors

What is deequ?

Deequ is an open-source library built on Apache Spark that allows data teams to define and run unit tests for data quality at scale. It helps validate assumptions about large datasets—such as completeness, uniqueness, and value constraints—before the data is used in analytics or machine learning pipelines. By catching data errors early, it prevents downstream issues and ensures reliable data products.

Target Audience

Data engineers, data scientists, and analytics engineers working with large-scale data pipelines on Apache Spark who need to ensure data quality and reliability.

Value Proposition

Developers choose Deequ because it provides a scalable, programmatic way to enforce data quality checks directly within Spark workflows, reducing manual validation efforts and catching data issues before they impact business decisions or models.

Overview

Deequ is a library built on top of Apache Spark for defining "unit tests for data", which measure data quality in large datasets.

Use Cases

Best For

  • Validating data completeness and uniqueness in large ETL pipelines
  • Enforcing data quality rules on billion-row datasets in data warehouses
  • Automating data quality checks for machine learning feature stores
  • Monitoring data quality metrics over time for anomaly detection
  • Profiling new datasets to automatically suggest validation constraints
  • Implementing unit testing practices for data engineering workflows

Not Ideal For

  • Teams working with small, static datasets where Spark overhead is unnecessary
  • Projects requiring real-time, stream-based data quality validation without batch processing
  • Organizations without existing Java 8 or Spark infrastructure to minimize setup complexity
  • Developers preferring lightweight, Python-native tools without Spark dependencies

Pros & Cons

Pros

Scalable Validation Engine

Built on Apache Spark, Deequ efficiently processes billions of rows across distributed systems, making it ideal for large-scale data pipelines as highlighted in the examples.

Comprehensive Constraint Library

Offers a wide range of built-in checks for completeness, uniqueness, value ranges, and custom patterns, demonstrated in the basic example with checks like hasSize and isContainedIn.

Declarative DQDL Support

Provides a Data Quality Definition Language for expressing rules in a simple, readable format, improving maintainability and reducing code verbosity, as shown in the DQDL examples.

Advanced Analytics Features

Includes data profiling, anomaly detection, and a metrics repository for historical tracking, enabling proactive data quality monitoring beyond basic validation.

Cons

Heavy Spark Dependency

Requires Apache Spark setup and strict version compatibility (e.g., Deequ 2.x only with Spark 3.1), adding infrastructure overhead and limiting flexibility for non-Spark users.

Java and Scala Focus

Core library is in Scala/Java; PyDeequ provides a Python wrapper but may lag in features or require additional setup, as noted in the README's separate PyDeequ section.

Batch-Only Processing

Designed for batch data validation on Spark DataFrames; not suitable for real-time streaming use cases without significant workarounds or integration efforts.

Frequently Asked Questions

Quick Stats

Stars3,637
Forks584
Contributors0
Open Issues79
Last commit3 days ago
CreatedSince 2018

Tags

#data-testing#apache-spark#spark#unit-testing#scala-library#data-engineering#data-profiling#data-quality#anomaly-detection#scala#big-data#data-validation#data-pipelines#dataquality

Built With

M
Maven
S
Scala
A
Apache Spark
J
Java

Included in

Apache Spark1.9k
Auto-fetched 18 hours ago

Related Projects

python-deequpython-deequ

Python API for Deequ

Stars824
Forks156
Last commit3 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub