GeoJSON to GeoParquet Converter
Standard step before loading vector data into a cloud data warehouse — Parquet's columnar layout makes spatial joins and filtered scans dramatically cheaper than row-oriented JSON.
Convert GeoJSON to GeoParquet now
Common issues converting GeoJSON to GeoParquet
- Parquet's schema is rigid: every feature needs the same property keys, with the same type. Mixed types (a numeric column where some rows are strings) get coerced to string in the output. Inspect with the validator first if your producer is loose about types.
- GeoJSON nested objects and arrays in `properties` aren't first-class in our Parquet writer — they're serialised to JSON strings. Flatten beforehand if you want them as native Parquet columns.
- Geometry is encoded as WKB in a single `geometry` column with the GeoParquet `geo` schema metadata. CRS is set to OGC:CRS84 (lon/lat WGS 84) per the spec default.
- Features without geometry are dropped — the GeoParquet spec requires the primary geometry column to be non-nullable.
Frequently asked questions
Which Parquet readers support GeoParquet?
Anything that reads Parquet can read the data. Tools that understand the `geo` metadata key — BigQuery's GEOGRAPHY type, Carto, Apache Sedona, Wherobots, DuckDB's spatial extension, OGR/GDAL ≥ 3.5, GeoPandas — will materialise geometry directly. Other readers see a Binary column they can decode with any WKB library.
What about CRS — does GeoParquet support reprojected data?
Yes. Each geometry column can declare its own CRS in the `geo` metadata. Our converter outputs WGS 84 (CRS84) by default; for re-projected outputs, pick the source EPSG code and we'll write the corresponding PROJJSON in the `crs` field.
Is GeoParquet a single file or multiple?
Single file by default. Producers like Sedona or Carto sometimes write a directory of row-group files for parallel ingest, but our output is one self-contained `.parquet` file.
How does file size compare to GeoJSON?
Typically 5–20× smaller for the same data, because Parquet column-encoding (dictionary + run-length + Zstd by default) compresses repeated property values aggressively. A 100 MB GeoJSON often lands at 5–10 MB GeoParquet.