Skip to content

Conversation

@uros-db
Copy link
Contributor

@uros-db uros-db commented Oct 31, 2025

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.

@github-actions github-actions bot added the SQL label Oct 31, 2025
Copy link
Contributor Author

@uros-db uros-db left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cloud-fan
Copy link
Contributor

they are dead code now, right? I think we need to register them in RowEncoder and some other places.

@uros-db
Copy link
Contributor Author

uros-db commented Oct 31, 2025

they are dead code now, right

Yes, this is correct. The next PR will provide full encoding support.

@cloud-fan
Copy link
Contributor

thanks, merging to master!

@cloud-fan cloud-fan closed this in 653e699 Oct 31, 2025
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]>
cloud-fan pushed a commit that referenced this pull request Nov 5, 2025
…s to PySpark Connect

### What changes were proposed in this pull request?
Introduce `GeographyType` and `GeometryType` to PySpark Connect. Note that the geospatial data types have already been introduced in PySpark as part of: #52627.

Also, introduce classes to represent a `Geography` and `Geometry` value in Python. Note that the corresponding classes have already been introduced on Scala side as part of: #52804.

### Why are the changes needed?
Enabling geospatial types in Spark Connect.

### Does this PR introduce _any_ user-facing change?
Yes, `GeographyType` and `GeometryType` are now available in PySpark Connect.

### How was this patch tested?
Added new Python Connect tests:
- `test_parity_geographytype`
- `test_parity_geometrytype`

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes #52871 from uros-db/geo-spark-connect.

Authored-by: Uros Bojanic <[email protected]>
Signed-off-by: Wenchen Fan <[email protected]>
cloud-fan pushed a commit that referenced this pull request Nov 5, 2025
…s to PySpark Connect

### What changes were proposed in this pull request?
Introduce `GeographyType` and `GeometryType` to PySpark Connect. Note that the geospatial data types have already been introduced in PySpark as part of: #52627.

Also, introduce classes to represent a `Geography` and `Geometry` value in Python. Note that the corresponding classes have already been introduced on Scala side as part of: #52804.

### Why are the changes needed?
Enabling geospatial types in Spark Connect.

### Does this PR introduce _any_ user-facing change?
Yes, `GeographyType` and `GeometryType` are now available in PySpark Connect.

### How was this patch tested?
Added new Python Connect tests:
- `test_parity_geographytype`
- `test_parity_geometrytype`

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes #52871 from uros-db/geo-spark-connect.

Authored-by: Uros Bojanic <[email protected]>
Signed-off-by: Wenchen Fan <[email protected]>
zifeif2 pushed a commit to zifeif2/spark that referenced this pull request Nov 22, 2025
…s to PySpark Connect

### What changes were proposed in this pull request?
Introduce `GeographyType` and `GeometryType` to PySpark Connect. Note that the geospatial data types have already been introduced in PySpark as part of: apache#52627.

Also, introduce classes to represent a `Geography` and `Geometry` value in Python. Note that the corresponding classes have already been introduced on Scala side as part of: apache#52804.

### Why are the changes needed?
Enabling geospatial types in Spark Connect.

### Does this PR introduce _any_ user-facing change?
Yes, `GeographyType` and `GeometryType` are now available in PySpark Connect.

### How was this patch tested?
Added new Python Connect tests:
- `test_parity_geographytype`
- `test_parity_geometrytype`

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes apache#52871 from uros-db/geo-spark-connect.

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
…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]>
huangxiaopingRD pushed a commit to huangxiaopingRD/spark that referenced this pull request Nov 25, 2025
…s to PySpark Connect

### What changes were proposed in this pull request?
Introduce `GeographyType` and `GeometryType` to PySpark Connect. Note that the geospatial data types have already been introduced in PySpark as part of: apache#52627.

Also, introduce classes to represent a `Geography` and `Geometry` value in Python. Note that the corresponding classes have already been introduced on Scala side as part of: apache#52804.

### Why are the changes needed?
Enabling geospatial types in Spark Connect.

### Does this PR introduce _any_ user-facing change?
Yes, `GeographyType` and `GeometryType` are now available in PySpark Connect.

### How was this patch tested?
Added new Python Connect tests:
- `test_parity_geographytype`
- `test_parity_geometrytype`

### Was this patch authored or co-authored using generative AI tooling?
No.

Closes apache#52871 from uros-db/geo-spark-connect.

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants