-
Notifications
You must be signed in to change notification settings - Fork 29k
[SPARK-54033][Geo][SQL] Introduce Catalyst server-side geospatial execution classes #52737
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Conversation
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
Contributor
Author
|
@mkaravel @szehon-ho @cloud-fan Please review. |
uros-db
commented
Oct 27, 2025
Contributor
Author
uros-db
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@cloud-fan This PR is ready for review.
cloud-fan
approved these changes
Oct 28, 2025
Contributor
|
thanks, merging to master! |
This was referenced Oct 31, 2025
cloud-fan
pushed a commit
that referenced
this pull request
Oct 31, 2025
…classes ### What changes were proposed in this pull request? Introduce client-side `Geography` and `Geometry` geospatial classes in external API. Note that the Catalyst internal server-side geospatial execution classes have already been introduced separately, as part of: #52737. ### Why are the changes needed? Introducing geospatial classes to client API, which will allow various clients (JDBC, Hive, Thrift server, Spark Connect, etc.) to consume geospatial objects. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? Added new Java unit test suites for the client classes: - `GeographyClientSuite` - `GeometryClientSuite` ### Was this patch authored or co-authored using generative AI tooling? No. Closes #52804 from uros-db/geo-client-classes. Authored-by: Uros Bojanic <[email protected]> Signed-off-by: Wenchen Fan <[email protected]>
zhengruifeng
pushed a commit
that referenced
this pull request
Oct 31, 2025
…atial execution classes ### What changes were proposed in this pull request? Following up on the original PR (#52737), this PR fixes Java test suite names. ### Why are the changes needed? Java test classes should be named same as the corresponding test suite files. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? Existing tests suffice. ### Was this patch authored or co-authored using generative AI tooling? No. Closes #52805 from uros-db/geo-server-suites. Authored-by: Uros Bojanic <[email protected]> Signed-off-by: Ruifeng Zheng <[email protected]>
cloud-fan
pushed a commit
that referenced
this pull request
Nov 3, 2025
…metry types ### What changes were proposed in this pull request? This PR introduces type encoders for `Geography` and `Geometry`. Note that the server-side geospatial classes have already been introduced as part of: #52737; while client-side geospatial classes in external API have subsequently been introduced as part of: #52804. ### Why are the changes needed? These encoders are used to translate between (server) Spark Catalyst types and (client) Java/Scala types. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? Added new Scala unit test suites for data frames: - `GeographyDataFrameSuite` - `GeometryDataFrameSuite` Also, added appropriate test cases to: - `RowSuite` ### Was this patch authored or co-authored using generative AI tooling? No. Closes #52813 from uros-db/geo-expression-encoders. Authored-by: Uros Bojanic <[email protected]> Signed-off-by: Wenchen Fan <[email protected]>
cloud-fan
pushed a commit
that referenced
this pull request
Nov 3, 2025
…metry types ### What changes were proposed in this pull request? This PR introduces type encoders for `Geography` and `Geometry`. Note that the server-side geospatial classes have already been introduced as part of: #52737; while client-side geospatial classes in external API have subsequently been introduced as part of: #52804. ### Why are the changes needed? These encoders are used to translate between (server) Spark Catalyst types and (client) Java/Scala types. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? Added new Scala unit test suites for data frames: - `GeographyDataFrameSuite` - `GeometryDataFrameSuite` Also, added appropriate test cases to: - `RowSuite` ### Was this patch authored or co-authored using generative AI tooling? No. Closes #52813 from uros-db/geo-expression-encoders. Authored-by: Uros Bojanic <[email protected]> Signed-off-by: Wenchen Fan <[email protected]> (cherry picked from commit 2f94313) Signed-off-by: Wenchen Fan <[email protected]>
huangxiaopingRD
pushed a commit
to huangxiaopingRD/spark
that referenced
this pull request
Nov 25, 2025
…cution classes ### What changes were proposed in this pull request? Introduce internal server-side `Geography` and `Geometry` execution classes in catalyst. Note that the corresponding low-level physical holders (`GeographyVal` and `GeometryVal`) for geospatial types have been previously added as part of apache#52629. ### Why are the changes needed? Establishing a clear internal execution layer for geospatial operations in catalyst and unblocking downstream work for implementing built-in ST functions and geospatial storage support. ### Does this PR introduce _any_ user-facing change? No. This PR does not introduce any new public API, catalyst expressions, nor user-facing SQL functions. Those will be added in the future. ### How was this patch tested? Added new Java test suites for the execution classes: - `GeographyExecutionSuite` - `GeometryExecutionSuite` ### Was this patch authored or co-authored using generative AI tooling? No. Closes apache#52737 from uros-db/geo-server-classes. Authored-by: Uros Bojanic <[email protected]> Signed-off-by: Wenchen Fan <[email protected]>
huangxiaopingRD
pushed a commit
to huangxiaopingRD/spark
that referenced
this pull request
Nov 25, 2025
…classes ### What changes were proposed in this pull request? Introduce client-side `Geography` and `Geometry` geospatial classes in external API. Note that the Catalyst internal server-side geospatial execution classes have already been introduced separately, as part of: apache#52737. ### Why are the changes needed? Introducing geospatial classes to client API, which will allow various clients (JDBC, Hive, Thrift server, Spark Connect, etc.) to consume geospatial objects. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? Added new Java unit test suites for the client classes: - `GeographyClientSuite` - `GeometryClientSuite` ### Was this patch authored or co-authored using generative AI tooling? No. Closes apache#52804 from uros-db/geo-client-classes. Authored-by: Uros Bojanic <[email protected]> Signed-off-by: Wenchen Fan <[email protected]>
huangxiaopingRD
pushed a commit
to huangxiaopingRD/spark
that referenced
this pull request
Nov 25, 2025
…atial execution classes ### What changes were proposed in this pull request? Following up on the original PR (apache#52737), this PR fixes Java test suite names. ### Why are the changes needed? Java test classes should be named same as the corresponding test suite files. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? Existing tests suffice. ### Was this patch authored or co-authored using generative AI tooling? No. Closes apache#52805 from uros-db/geo-server-suites. Authored-by: Uros Bojanic <[email protected]> Signed-off-by: Ruifeng Zheng <[email protected]>
huangxiaopingRD
pushed a commit
to huangxiaopingRD/spark
that referenced
this pull request
Nov 25, 2025
…metry types ### What changes were proposed in this pull request? This PR introduces type encoders for `Geography` and `Geometry`. Note that the server-side geospatial classes have already been introduced as part of: apache#52737; while client-side geospatial classes in external API have subsequently been introduced as part of: apache#52804. ### Why are the changes needed? These encoders are used to translate between (server) Spark Catalyst types and (client) Java/Scala types. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? Added new Scala unit test suites for data frames: - `GeographyDataFrameSuite` - `GeometryDataFrameSuite` Also, added appropriate test cases to: - `RowSuite` ### Was this patch authored or co-authored using generative AI tooling? No. Closes apache#52813 from uros-db/geo-expression-encoders. Authored-by: Uros Bojanic <[email protected]> Signed-off-by: Wenchen Fan <[email protected]>
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.
What changes were proposed in this pull request?
Introduce internal server-side
GeographyandGeometryexecution classes in catalyst.Note that the corresponding low-level physical holders (
GeographyValandGeometryVal) for geospatial types have been previously added as part of #52629.Why are the changes needed?
Establishing a clear internal execution layer for geospatial operations in catalyst and unblocking downstream work for implementing built-in ST functions and geospatial storage support.
Does this PR introduce any user-facing change?
No. This PR does not introduce any new public API, catalyst expressions, nor user-facing SQL functions. Those will be added in the future.
How was this patch tested?
Added new Java test suites for the execution classes:
GeographyExecutionSuiteGeometryExecutionSuiteWas this patch authored or co-authored using generative AI tooling?
No.