Skip to main content

DataComPy

PyPI - Python Version Code style: black PyPI version Anaconda-Server Badge PyPI - Downloads

DataComPy is a package to compare two Pandas DataFrames. Originally started to be something of a replacement for SAS's PROC COMPARE for Pandas DataFrames with some more functionality than just Pandas.DataFrame.equals(Pandas.DataFrame) (in that it prints out some stats, and lets you tweak how accurate matches have to be). Then extended to carry that functionality over to Spark Dataframes.

Quick Installation

pip install datacompy

or

conda install datacompy

Installing extras

If you would like to use Spark or any other backends please make sure you install via extras:

pip install datacompy[spark]
pip install datacompy[dask]
pip install datacompy[duckdb]
pip install datacompy[ray]

Legacy Spark Deprecation

With version v0.12.0 the original SparkCompare was replaced with a Pandas on Spark implementation. The original SparkCompare implementation differs from all the other native implementations. To align the API better, and keep behaviour consistent we are deprecating the original SparkCompare into a new module LegacySparkCompare

Subsequently in v0.13.0 a PySaprk DataFrame class has been introduced (SparkSQLCompare) which accepts pyspark.sql.DataFrame and should provide better performance. With this version the Pandas on Spark implementation has been renamed to SparkPandasCompare and all the spark logic is now under the spark submodule.

If you wish to use the old SparkCompare moving forward you can import it like so:

from datacompy.spark.legacy import LegacySparkCompare

Supported versions and dependncies

Different versions of Spark, Pandas, and Python interact differently. Below is a matrix of what we test with. With the move to Pandas on Spark API and compatability issues with Pandas 2+ we will for the mean time note support Pandas 2 with the Pandas on Spark implementation. Spark plans to support Pandas 2 in Spark 4

Spark 3.2.4 Spark 3.3.4 Spark 3.4.2 Spark 3.5.1
Python 3.9 ✅ ✅ ✅ ✅
Python 3.10 ✅ ✅ ✅ ✅
Python 3.11 ❌ ❌ ✅ ✅
Python 3.12 ❌ ❌ ❌ ❌
Pandas < 1.5.3 Pandas >=2.0.0
Compare ✅ ✅
SparkPandasCompare ✅ ❌
SparkSQLCompare ✅ ✅
Fugue ✅ ✅

[!NOTE] At the current time Python 3.12 is not supported by Spark and also Ray within Fugue. If you are using Python 3.12 and above, please note that not all functioanlity will be supported. Pandas and Polars support should work fine and are tested.

Supported backends

  • Pandas: (See documentation)
  • Spark: (See documentation)
  • Polars: (See documentation)
  • Fugue is a Python library that provides a unified interface for data processing on Pandas, DuckDB, Polars, Arrow, Spark, Dask, Ray, and many other backends. DataComPy integrates with Fugue to provide a simple way to compare data across these backends. Please note that Fugue will use the Pandas (Native) logic at its lowest level (See documentation)

Contributors

We welcome and appreciate your contributions! Before we can accept any contributions, we ask that you please be sure to sign the Contributor License Agreement (CLA).

This project adheres to the Open Source Code of Conduct. By participating, you are expected to honor this code.

Roadmap

Roadmap details can be found here

Metadata

Release files for datacompy 0.13.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for datacompy 0.13.2
File Size Uploaded
datacompy-0.13.2.tar.gz 68.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for datacompy 0.13.2
File Interpreter ABI Platform
datacompy-0.13.2-py3-none-any.whl Python 3 none any Details

Total release size: 129.1 kB

Release files / datacompy-0.13.2.tar.gz

Download URL datacompy-0.13.2.tar.gz
Size 68.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d0399fe92eedb6cdc632cfb9c414ced431191367c7b6ed1c3899bde7277110ae
BLAKE2b-256 checksum
How to use checksums
5cf78433bbb59e7005fa2b54574914866893516c2f6fbfa0b6fa4fe34abd07d2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release files / datacompy-0.13.2-py3-none-any.whl

Download URL datacompy-0.13.2-py3-none-any.whl
Size 60.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
49b67f9c3e3dec0cca3ea8254c04360ca163e4620d899984e45eda2d2d254400
BLAKE2b-256 checksum
How to use checksums
16882fd05eeba90fe219dea4fb75a78cf22176ffd9069d0cd8eefb505b3763a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.19

Release history Release notifications | RSS feed

1.1.0

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.19.4

2 release files

0.19.3

2 release files

0.19.1

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.1

2 release files

0.16.8

2 release files

0.16.7

2 release files

0.16.6

2 release files

0.16.5

2 release files

0.16.4

2 release files

0.16.3

2 release files

0.16.2

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.3

2 release files

0.14.2

2 release files

0.14.1

2 release files

0.14.0

2 release files

0.13.3

2 release files

This release

0.13.2 This release

2 release files

0.13.1

2 release files

0.13.0

2 release files

0.12.1

2 release files

0.11.3

2 release files

0.11.2

2 release files

0.11.1

2 release files

0.11.0

2 release files

0.10.5

2 release files

0.10.4

2 release files

0.10.3

2 release files

0.10.2

2 release files

0.9.0

2 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

1 release file

0.5.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page