GeoPandas: implement GeoDataFrame.to_feather
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 74/100
Research direction
Start at the GeoDataFrame.to_feather stub and compare its existing signature with GeoDataFrame.to_arrow; inspect how the GeoPandas writer handles path, index, compression, schema_version, and extra keywords. Add coverage for index=False, index=True, index=None, keyword pass-through, and round trips through geopandas.read_feather and GeoDataFrame, including the documented driver-collection cost and index behavior.
Written by the indexing model from the issue text.
Description
Part of #2230.
Implement GeoDataFrame.to_feather, which currently raises NotImplementedError.
Keep the geopandas signature (path, index, compression, schema_version, **kwargs), which the existing stub already matches, and pass extra keywords through to pyarrow.feather.write_feather.
Feather is a single file format and Spark has no writer for it, so the proposed approach is to collect the frame to the driver and let GeoPandas write it. GeoDataFrame.to_arrow also delegates to to_geopandas(), for a different reason: it returns an in-memory GeoPandas object that has no Sedona equivalent. I have a working implementation and tests locally, and I would appreciate feedback on whether driver side collection is acceptable for a file writer before I open the PR.
Document the driver collection cost and the index behavior. Because Sedona converts RangeIndex into a general Index, index=None writes the index, and reading the file back gives an Index where geopandas gives a RangeIndex. to_arrow documents a related caveat, but its wording about the index appearing as a column does not carry over to Feather, where pandas restores it as the index.
Tests should cover index=False, index=True, index=None and keyword pass-through, reading back with geopandas.read_feather. Sedona has no read_feather of its own, so the Sedona half of the round trip goes through GeoDataFrame(geopandas.read_feather(path)).
cc @petern48
- Dominant language
- Java
- Stars
- 2.4k
- Forks
- 787
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 52
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/sedona
-
ST_EqualsIdentical returns false for a stored 2D geometry and the same geometry parsed from WKTPossibly taken @jiayuasu claimed this today. Open
Difficulty 3/5 Half a day Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
Skip deserialization in ST_EqualsIdentical when both geometry buffers are byte-identicalPossibly taken @jiayuasu claimed this today. Open
Difficulty 3/5 Half a day Newbie friendliness 25/100
Maintainers usually reply within 1 day
-
Shaded jar built with -Dgeotools keeps only one JAI-EXT registry filePossibly taken @jiayuasu claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 25/100
apache/sedona#3443 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 45/100
apache/sedona#3429 · 1 comment ·
Maintainers usually reply within 1 day
-
Clearing NoData on one raster band changes another band's MapAlgebra resultsMay be free again A pull request for this issue was closed without being merged. Openbug
Difficulty 4/5 3-5 days Newbie friendliness 55/100
apache/sedona#3324 · 1 comment ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
NationalSecurityAgency/ghidra#9884 ·
Maintainers usually reply within 2 days
-
Status: Pending Review Type: Feature Request
Difficulty 1/5 Under an hour Newbie friendliness 82/100
OpenRefine/OpenRefine#8019 ·
Maintainers usually reply within 1 day
-
`timer` rule rejects dates the engine acceptsPossibly taken @MFA-G claimed this today. Openbug ready
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
camunda/bpmnlint-plugin-camunda-compat#281 · 3 comments ·
Maintainers usually reply within 1 day
-
status: waiting-for-triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 62/100