Commit 3b308d8
committed
[SEDONA-2880] GeoParquet writer: omit bbox in metadata for empty files
When a Spark partition has zero rows the GeoParquet writer was emitting
`bbox: [0, 0, 0, 0]` in the per-column geo metadata. Per the GeoParquet
1.1 spec, `bbox` is the bounding box of the geometries in the file and
is optional ("if specified, MUST be encoded..."), so for a file with no
geometries we should omit it rather than fabricate an extent.
The fabricated `[0, 0, 0, 0]` is especially harmful: it places a phantom
"data at Null Island" claim in the metadata, breaking bbox-based file
pruning in downstream readers (Sedona's own GeoParquetSpatialFilter,
DuckDB Spatial, GDAL's OGR_GEOPARQUET driver, GeoPandas) and corrupting
dataset-level extent aggregation.
This change makes `GeometryFieldMetaData.bbox` an `Option[Seq[Double]]`
and writes `None` (which json4s omits from JSON) when no geometries
were observed. All consumers of the case class are updated.1 parent 3c280e7 commit 3b308d8
9 files changed
Lines changed: 27 additions & 16 deletions
File tree
- spark
- common/src
- main/scala/org/apache/spark/sql
- execution/datasources/geoparquet
- sedona_sql/io/stac
- test/scala/org/apache/sedona/sql
- spark-3.4/src/main/scala/org/apache/spark/sql/execution/datasources/v2/geoparquet/metadata
- spark-3.5/src/main/scala/org/apache/spark/sql/execution/datasources/v2/geoparquet/metadata
- spark-4.0/src/main/scala/org/apache/spark/sql/execution/datasources/v2/geoparquet/metadata
- spark-4.1/src/main/scala/org/apache/spark/sql/execution/datasources/v2/geoparquet/metadata
Lines changed: 4 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
38 | 40 | | |
39 | 41 | | |
40 | 42 | | |
| |||
44 | 46 | | |
45 | 47 | | |
46 | 48 | | |
47 | | - | |
| 49 | + | |
48 | 50 | | |
49 | 51 | | |
50 | 52 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
| 71 | + | |
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
| |||
Lines changed: 12 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
245 | 245 | | |
246 | 246 | | |
247 | 247 | | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
248 | 253 | | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
255 | 261 | | |
256 | 262 | | |
257 | 263 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
328 | 328 | | |
329 | 329 | | |
330 | 330 | | |
331 | | - | |
| 331 | + | |
332 | 332 | | |
333 | 333 | | |
334 | 334 | | |
| |||
Lines changed: 5 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
252 | 252 | | |
253 | 253 | | |
254 | 254 | | |
255 | | - | |
256 | 255 | | |
257 | | - | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
258 | 261 | | |
259 | 262 | | |
260 | 263 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
| 86 | + | |
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
| 87 | + | |
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
| 87 | + | |
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
| 87 | + | |
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| |||
0 commit comments