jiayuasu opened a new pull request, #3184: URL: https://github.com/apache/sedona/pull/3184
## Did you read the Contributor Guide? - Yes, I have read the [Contributor Rules](https://sedona.apache.org/latest/community/rule/) and [Contributor Development Guide](https://sedona.apache.org/latest/community/develop/) ## Is this PR related to a ticket? - Yes, and the PR name follows the format `[GH-XXX] my subject`. Closes #3182 ## What changes were proposed in this PR? This PR implements distributed GeoPandas-compatible `sjoin_nearest` for the top-level API and `GeoDataFrame`. The implementation uses Sedona's distributed KNN join rather than a Cartesian product, Python geometry UDF, or driver-side geometry collection. It supports inner, left, and right joins; equidistant matches; `max_distance`; `distance_col`; `exclusive`; suffixing; named and MultiIndex inputs; null/empty geometries; active geometry; CRS; and SRID preservation. The SQL KNN predicate gains five- and six-argument forms for query-local `include_ties` and `exclusive` controls. The regular planar path now routes non-point queries by their full geometry and reconciles partition-local candidates with bounded per-query state and stable row identities. Legacy three/four-argument and geography tie behavior remain unchanged. English and Chinese SQL and GeoPandas documentation are updated. ## How was this patch tested? - Direct KNN iterator tests (3 tests) - `KnnJoinSuite` (40 tests) - GeoPandas nearest-join and Python `ST_KNN` API/type tests (285 tests) - Spark 3.4 / Scala 2.12 shaded package build - Spotless and repository pre-commit hooks The tests force regular and both broadcast KNN plans and cover non-point queries, duplicate rows, ties, exclusive ranking, outer reconstruction, indexes, column collisions, null/empty geometries, CRS/SRID metadata, and legacy/geography compatibility. ## Did this PR include necessary documentation updates? - Yes, I am adding new APIs. I am using the current SNAPSHOT version number `v1.9.1`. - Yes, I have updated the documentation. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
