Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

GeoPandas: implement GeoDataFrame.to_feather

Open
#3,364 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
74/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
python
Domain
data

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

good first issue

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

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/sedona

All issues in apache/sedona

Similar issues

More Java issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.