GeoParquet
GeoParquet files (.geoparquet) are Parquet files that carry geospatial geometry columns and a geo metadata key. Beacon reads them in addition to writing them. This chapter covers setting GeoParquet up as a dataset and external table; for querying geometry with SQL see the GeoParquet SQL chapter.
Auto-discovery
Like every other format, GeoParquet datasets are discovered from the configured storage root automatically — no registration step is required. Drop .geoparquet files into the datasets folder (or an S3 prefix) and they become immediately queryable with the read_geoparquet() table function. Reading works the same over local disk and S3-compatible object stores.
- Geometry columns described in the file's
geometadata are decoded to their native GeoArrow representation on read. - A non-geospatial Parquet file (no
geometadata) is read like ordinary Parquet, so the format is safe to point at mixed folders. - Column projection is applied — only the columns a query selects are materialized.
Registering an external table
Register a stable table name over one or more files with STORED AS GEOPARQUET:
CREATE EXTERNAL TABLE stations
STORED AS GEOPARQUET
LOCATION 'spatial/stations/*.geoparquet';
SELECT * FROM stations LIMIT 10;The LOCATION follows the same glob/folder semantics as other external tables: point at a folder to glob every .geoparquet under it, or give an explicit glob pattern.
Writing GeoParquet
Beacon can also write GeoParquet. When a query result is written in GeoParquet output, longitude/latitude columns are mapped into a geometry column automatically. Beacon detects them by name — common longitude names (lon, long, lng, longitude, easting, x) and latitude names (lat, latitude, northing, y) — or you can set the columns explicitly via OPTIONS. See querying output formats.
WARNING
Spatial bounding-box pruning (row-group skipping via the GeoParquet bbox covering) is not yet applied on read — queries perform a full scan with column projection. Geometry-aware predicate pushdown is planned.