jiayuasu opened a new pull request, #3282: URL: https://github.com/apache/sedona/pull/3282
## 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 #3281. Part of #2230. ## What changes were proposed in this PR? This PR implements `GeoDataFrame.from_features` for small, in-memory GeoJSON-like feature collections. It: - delegates feature parsing to the installed GeoPandas version and wraps the resulting frame in Sedona; - accepts feature iterables and generators, FeatureCollection dictionaries, and objects implementing `__geo_interface__`; - preserves column selection and ordering, CRS assignment, null geometries, uneven or null property sets, and empty inputs with explicit columns; - preserves leading-null geometry order on Spark 3, where pandas-on-Spark otherwise fails Geometry UDT inference; and - documents driver materialization, Spark property-schema constraints, and the distributed GeoJSON and GeoParquet alternatives for large datasets. Malformed inputs continue to use GeoPandas validation and error behavior. Property values must be representable by a consistent Spark-inferred schema after parsing. ## How was this patch tested? - Spark 3.4.0 / Python 3.8 / GeoPandas 0.13.2: 3 focused tests passed. - Spark 3.4.0 / Python 3.8 / Shapely 1.8.5.post1: 3 focused tests passed. - Spark 4.1.1 / Python 3.11 / GeoPandas 1.1.3: 3 focused tests passed. - All commit hooks passed. The tests cover supported input forms, generators, `__geo_interface__`, leading-null geometries, uneven and null properties, column ordering, CRS preservation, restored row order, and empty inputs with an explicit geometry schema. ## Did this PR include necessary documentation updates? - Yes, I am adding a new API. I am using the [current SNAPSHOT version number](https://github.com/apache/sedona/blob/99239524f17389fc4ae9548ea88756f8ea538bb9/pom.xml#L29) in `vX.Y.Z` format. The method documentation marks the API as added in `2.0.0`, and the release notes are updated. -- 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]
