[GH-3260] GeoPandas: Implement distributed geom_equals_identical - #3262
Merged
jiayuasu merged 1 commit intoAug 18, 2026
Merged
Conversation
jiayuasu
force-pushed
the
feature/geopandas-geom-equals-identical
branch
from
August 15, 2026 02:17
af364ac to
e13b606
Compare
jiayuasu
force-pushed
the
feature/st-equals-identical
branch
from
August 16, 2026 05:42
39a0544 to
799bc1e
Compare
jiayuasu
force-pushed
the
feature/geopandas-geom-equals-identical
branch
from
August 16, 2026 05:42
e13b606 to
2f7bf9a
Compare
jiayuasu
force-pushed
the
feature/st-equals-identical
branch
from
August 17, 2026 04:58
799bc1e to
55bbe1c
Compare
jiayuasu
force-pushed
the
feature/geopandas-geom-equals-identical
branch
2 times, most recently
from
August 17, 2026 06:37
90552af to
ba1ef7d
Compare
jiayuasu
force-pushed
the
feature/geopandas-geom-equals-identical
branch
from
August 18, 2026 06:50
ba1ef7d to
c8eeb04
Compare
jiayuasu
marked this pull request as ready for review
August 18, 2026 07:12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Did you read the Contributor Guide?
Is this PR related to a ticket?
[GH-XXX] my subject.Closes #3260.
Part of #2230.
What changes were proposed in this PR?
GeoPandas 1.1 added
geom_equals_identicalfor exact structural comparison ofgeometry values. Unlike topological equality or tolerance-based
geom_equals_exact, it compares geometry type, nesting, component and vertexorder, coordinate dimensionality, and every represented XY/Z/M ordinate. NaN
ordinates at the same position compare equal.
This PR adds the distributed GeoPandas API layer on top of the native
ST_EqualsIdenticalpredicate merged in #3266:GeoSeries.geom_equals_identical(other, align=None)and delegateGeoDataFrame.geom_equals_identicalthrough the active geometry column.pandas-on-Spark Series inputs.
MultiIndex values, positional comparison with
align=False, result naming,non-nullable boolean output, null-to-false behavior, and CRS mismatch
warnings.
remain distributed, and the plan contains no Python UDF execution.
standalone
LinearRing-to-LineStringrepresentation.Chinese GeoPandas tutorials and release notes.
This is the final PR in the #3260 stack and is based directly on
master. Itsprerequisites are merged:
GeometryUDT boundary.
Java SerDe boundary and rejects mixed layouts that a single-layout container
cannot represent losslessly.
ST_EqualsIdenticalacross Sedona's SQL engines.The predicate compares the geometry representation it receives. JTS still
cannot distinguish ordinary XY from declared XYZ when every Z ordinate is NaN,
including empty XYZ values and zero-member collections. Direct Shapely inputs
with mixed layouts inside a Polygon or same-type multi-geometry may also be
normalized by Python GeometryUDT serialization before reaching the JVM. These
boundaries are documented in the public method.
How was this patch tested?
22tests passed.19tests passed and3upstream-version-dependent tests skipped.427 tests passed and 1 skipped.empties, NaN ordinates, standalone rings, aligned and positional comparison,
duplicate and MultiIndex values, CRS warnings, nulls, and serialization
boundaries.
hooks, and
git diff --checkpassed.Did this PR include necessary documentation updates?
v2.0.0.documentation, and release notes.