Amazon Deequ
Amazon Deequ is a free, open-source Apache Spark library for defining data unit tests that measure quality in large datasets.
What Amazon Deequ is
Amazon Deequ is a free, open-source Apache Spark library for defining data unit tests that measure quality in large datasets. It can check row counts, completeness, uniqueness, allowed values, nonnegative values, patterns, and approximate quantiles. Its examples also cover data profiling, saving and querying metrics, anomaly detection over time, automatic constraint suggestions, and incremental metric calculations. Deequ's declarative Data Quality Definition Language (DQDL) supports rules for counts, completeness, uniqueness, statistics, schema matching, freshness, and custom SQL. Row-level evaluation identifies records that pass or fail supported rules; dataset-level checks such as RowCount and Mean are skipped in that mode. The project targets particular Spark versions, so users need a matching release; versions 2.1.0 and later require Java 11. It is intended for very large datasets, including billions of rows, often stored in distributed filesystems or data warehouses. Deequ requires Apache Spark, is licensed under Apache 2.0, and is distributed through Maven. PyDeequ provides a Python interface.
Good
- Checks completeness, uniqueness, patterns, and more
- Includes profiling and anomaly detection examples
- Supports declarative DQDL rules and custom SQL
- Apache 2.0 open-source library
Watch out
- Requires Apache Spark
- Release must match the Spark version
- Versions 2.1.0 and later require Java 11
Who it suits
Deequ suits developers and data teams who want to check data quality in Spark-based pipelines before datasets reach consuming systems or machine-learning algorithms. It is intended for users comfortable working with Spark and its supported release versions.
Verdict
Deequ offers a broad set of data-quality checks and metric workflows for Spark datasets. Confirm Spark and Java compatibility before selecting a release.
Plans and prices
From Amazon Deequ's own pricing page, checked 5 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Apache 2.0 open-source library | Free | Requires Apache Spark; release must match Spark version |
The facts
Each one read from Amazon Deequ's own pages, with the date it was checked.
What it does
- AWS relationship
- AWS Glue Data Quality documentation says that managed service is built on the open-source Deequ framework and uses DQDL.checked 4 Oct 2026
- Checks
- Checks can validate row counts, completeness, uniqueness, allowed values, nonnegative values, URL patterns, and approximate quantiles.checked 5 Oct 2026
- Compatibility
- Deequ 2.1.0 and later require Java 11, and the project lists Spark 3.1 through 3.5 compatibility for Deequ 2.x.checked 5 Oct 2026
- Contribution and feedback
- The README welcomes feedback and contributions.checked 4 Oct 2026
- Data scale
- The project says Deequ is designed for very large datasets, including billions of rows, typically stored in a distributed filesystem or data warehouse.checked 4 Oct 2026
- DQDL
- Deequ supports the declarative Data Quality Definition Language, including composite rules using AND and OR.checked 5 Oct 2026
- Installation
- The README provides Maven and sbt dependency examples and directs users to select a release matching their Spark version.checked 4 Oct 2026
- Integrations
- Deequ is built on Apache Spark, is distributed through Maven artifacts, and has a Python interface called PyDeequ.checked 5 Oct 2026
- Intended use
- The README describes using data checks to catch errors before datasets reach consuming systems or machine-learning algorithms.checked 5 Oct 2026
- License
- The library is licensed under the Apache 2.0 License.checked 5 Oct 2026
- Metrics and profiling
- The project examples include metrics persistence and querying, data profiling, anomaly detection over time, automatic constraint suggestions, and incremental metric computation.checked 5 Oct 2026
- Profiling and monitoring
- Examples cover data profiling, persisting and querying computed metrics, anomaly detection over time, automatic constraint suggestions, and incremental metrics computation.checked 4 Oct 2026
- Purpose
- Deequ is an Apache Spark library for defining unit tests that measure data quality in large datasets.checked 5 Oct 2026
- Python interface
- The project points Python users to PyDeequ, described on its repository as a Python API for Deequ.checked 4 Oct 2026
- Row-level results
- DQDL row-level evaluation identifies rows passing or failing supported rules, while dataset-level rules such as RowCount and Mean are skipped.checked 5 Oct 2026
- Scale
- The project says it is designed for very large datasets, including billions of rows, typically stored in distributed filesystems or data warehouses.checked 5 Oct 2026
- Security reporting
- The contribution guide asks users to report potential security issues through AWS/Amazon Security's vulnerability reporting page rather than a public GitHub issue.checked 5 Oct 2026
- Support and contributions
- The project welcomes feedback and contributions and directs bug reports and feature requests to its GitHub issue tracker.checked 5 Oct 2026
The full review of Amazon Deequ
Overview
Amazon Deequ is an open-source library for testing data quality in Apache Spark pipelines. It is best suited to engineering teams that already run Spark and want checks and metrics to catch errors before data reaches downstream systems or machine-learning workloads. Its range of validation and profiling options is useful, but it is not a fit for teams seeking a standalone service independent of Spark.
Key features
Deequ checks row counts, completeness, uniqueness, allowed and nonnegative values, patterns, and approximate quantiles. That covers common quality problems across structured datasets, and its Spark foundation is designed to work at very large scale, including billions of rows. In practice, the scale advantage matters most when data already lives in distributed filesystems or warehouses; it does not remove the need to manage a compatible Spark environment.
Its examples also cover data profiling, saving and querying metrics, anomaly detection over time, automatic constraint suggestions, and incremental metric computation. These workflows can extend Deequ beyond a one-time gate into recurring monitoring, though teams need to build them into their own Spark environment. DQDL offers declarative rules for counts, completeness, uniqueness, statistics, schema matching, freshness, and custom SQL, giving teams a way to express checks without writing each as imperative code.
Row-level evaluation can identify records that pass or fail supported rules, but dataset-wide rules such as RowCount and Mean are skipped in that mode. Teams needing per-record diagnostics should account for that boundary when designing their checks.
Pricing
Deequ's Apache 2.0 open-source library plan costs nothing. It includes the library without a paid tier, and the Apache 2.0 license permits use under its terms. The tradeoff is infrastructure: the plan requires Apache Spark, and each Deequ release must match the Spark version in use. There is no paid managed tier in this plan, so teams should choose it when they can operate the execution environment themselves.
Platforms
Deequ supports API, Linux, macOS, Windows, and self-hosted use. It is distributed through Maven artifacts, with Maven and sbt dependency examples, and its test languages include Scala, Java, DQDL, and SQL. Releases target specific Spark versions: Deequ 2.x lists Spark 3.1 through 3.5 compatibility, and releases 2.1.0 and later require Java 11. Python teams can use PyDeequ, the project's Python API. Deequ supports schema migration tests and custom detection rules, plus pre-commit scanning; it does not offer CI/CD scanning, pull-request scanning, or push protection. Git is the supported VCS.
Who it's for
Deequ suits data engineers and teams building Spark-based quality gates or recurring metrics for large datasets. It is particularly relevant when Scala or Java code, DQDL, or SQL checks can live alongside existing Spark jobs. Teams without Spark, or those looking for managed execution or repository scanning in CI and pull requests, should consider a different tool.
Pros and cons
- Pros: Broad checks cover common completeness, validity, uniqueness, and distribution needs, while profiling and anomaly-detection examples support ongoing monitoring.
- Pros: The Apache 2.0 library is free to use, and distributed Spark processing is designed for datasets at very large scale.
- Cons: Spark is required and release compatibility must be managed, adding operational and version-selection work.
- Cons: Row-level evaluation skips dataset-level rules such as RowCount and Mean, and the feature set does not include CI/CD or pull-request scanning.
Alternatives
DataKitchen TestGen is worth considering for a freemium option with an open-source plan that includes one user, one connection, and one project, alongside unlimited tables and data volume.
Great Expectations may suit teams that prefer a freemium tool with a Developer plan capped at five data assets under test per month and three users, while allowing unlimited rows per asset.
Atlas is an alternative for readers looking for an open-core database migration tool.
Soda is a freemium option whose Free plan includes pipeline testing, metrics observability, and alerting and ticketing integrations, with free Soda Processing Units.
SQLancer is another free software option to consider.
utPLSQL is a free alternative focused on unit testing Oracle Database PL/SQL code.
pgroll is a free alternative for PostgreSQL 14.0 or later, distributed as a single cross-platform binary.
SQLFluff is a free open-source SQL linter if the need is SQL linting rather than Spark data-quality testing.
Browse Database Testing Tools for more options, or Secrets Scanning Software for a different software category.
Verdict
Choose Amazon Deequ if you already run Spark and want a free, Apache 2.0 toolkit that combines large-scale data checks with profiling and metrics workflows. Its breadth is the main reason to choose it; the Spark dependency, version matching, and gaps in CI and pull-request scanning are the main reasons to look elsewhere.
Getting started
- Open the Deequ GitHub repository.
- Choose a Deequ release that matches your Apache Spark version.
- Check Java requirements for the selected release.
- Add the dependency using the Maven or sbt example.
- Define checks using the supported library interfaces or DQDL.
- For Python use, refer to the PyDeequ interface.
Limits worth knowing
The Apache 2.0 open-source library is free, but it requires Apache Spark and the release must match the Spark version. Deequ 2.1.0 and later require Java 11.
Questions
Is Amazon Deequ free?
Yes. It is an Apache 2.0 open-source library, listed as free.
What does Deequ require?
It requires Apache Spark, and the Deequ release must match the Spark version. Deequ 2.1.0 and later require Java 11.
Which languages or rule formats does it support?
Listed test languages are Scala, Java, DQDL, and SQL. Python users can use the PyDeequ interface.
What kinds of data quality checks can it run?
Checks include row counts, completeness, uniqueness, allowed and nonnegative values, patterns, and approximate quantiles. DQDL also covers statistics, schema matching, freshness, and custom SQL.
Can Deequ evaluate individual rows?
Yes. Row-level evaluation identifies rows that pass or fail supported rules, but dataset-level rules such as RowCount and Mean are skipped in that evaluation.
Where can I get Deequ?
The project is on GitHub and provides Maven and sbt dependency examples. It is distributed through Maven artifacts.
Alternatives to Amazon Deequ
- 1

Atlas
Free planOpen sourceWebAPILinuxmacOS8.3From $39 a month - 2

DataKitchen TestGen
Free planOpen sourceWebAPILinuxmacOS8.1From $100 a month - 3

Soda
Free planWebAPILinuxSelf-hosted7.5From $750 a month - 4
Avidemux
Free planOpen sourceWebLinuxmacOSWindows7.3Free plan - 5
pgroll
Free planOpen sourceLinuxmacOSSelf-hostedWindows7.3Free plan - 6

Bytebase Enterprise
Free planWebAPISelf-hosted6.8From $20 a month
