Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deadlock when reading GeoParquet dataset with multiple files #608

Open
kylebarron opened this issue Apr 12, 2024 · 12 comments
Open

Deadlock when reading GeoParquet dataset with multiple files #608

kylebarron opened this issue Apr 12, 2024 · 12 comments

Comments

@kylebarron
Copy link
Member

kylebarron commented Apr 12, 2024

@H-Plus-Time in case you have any interest in reading multi-file GeoParquet datasets, I'd love if you were able to check over my work, because I seem to have a deadlock somewhere.

For example, testing on this branch this works (in Deno)

const wasm = await import("./pkg/esm/index.js");
let _ = await wasm.default();
const arrow = await import("npm:apache-arrow");

const url =
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00226-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet";
const parquetFile = await new wasm.ParquetFile(url);

const minxPath = ["bbox", "minx"];
const minyPath = ["bbox", "miny"];
const maxxPath = ["bbox", "maxx"];
const maxyPath = ["bbox", "maxy"];

const readOptions = {
  bbox: [94.9218037, 26.7301782, 94.9618037, 26.7501782],
  bboxPaths: {
    minxPath,
    minyPath,
    maxxPath,
    maxyPath,
  },
};
const filteredTable = await parquetFile.read(readOptions);

but then this addition:

const urls = [
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00000-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00001-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00002-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00003-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00004-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00005-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00006-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00007-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00008-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00009-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00010-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00011-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00012-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "https://overturemaps-us-west-2.s3.amazonaws.com/release/2024-03-12-alpha.0/theme=buildings/type=building/part-00226-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet"
];

const parquetDataset = await new wasm.ParquetDataset(urls);
const table2 = await parquetDataset.read(readOptions);

seems to deadlock:
image

@H-Plus-Time
Copy link
Contributor

Ah 😬. I wonder if it's reproducible when run against a pair, and a pair of significantly smaller/truncated files.

This worked before the object store change, right?

Thinking about it, this dataset is big enough that any leaks in get_opts could cause something similar to this (the channels used to smuggle the non-sens stream might be the culprit).

@kylebarron
Copy link
Member Author

Sorry for the confusion, this didn't work before the object store change. I haven't tried it again with the object store merged in as well. But presumably this is an issue in my code with how I'm running the futures

@kylebarron
Copy link
Member Author

I'm trying to play around with FuturesUnordered and a stream, thinking that maybe the join_all is too much to collect at once? But then I'm lost in how to collect the futures into a single table of record batches.

@kylebarron
Copy link
Member Author

kylebarron commented Apr 12, 2024

It's possible that the underlying code is in principle ok, but that it's failing with something specific to the large overture data.

Trying the most minimal test with local files (but using the same code path) works fine for me. Creating a basic multi-file Parquet dataset:

import geopandas as gpd

gdf = gpd.read_file(gpd.datasets.get_path("naturalearth_cities"))
gdf.iloc[:50].to_parquet("naturalearth_cities_part1.parquet")
gdf.iloc[50:100].to_parquet("naturalearth_cities_part2.parquet")
gdf.iloc[100:150].to_parquet("naturalearth_cities_part3.parquet")
gdf.iloc[150:200].to_parquet("naturalearth_cities_part4.parquet")
gdf.iloc[200:250].to_parquet("naturalearth_cities_part5.parquet")

Then reading via the geoarrow-rs Python bindings (virtualenv env && source ./env/bin/activate && maturin develop --release in the python/core dir) works fine (I've also hit the same "deadlock" issue in Python when reading a bounding box from a list of files):

from geoarrow.rust.core import ParquetDataset, ObjectStore, ParquetFile
root = "/Users/kyle/data/parquet"
store = ObjectStore(root, {})
path = "naturalearth_cities_part1.parquet"

file = ParquetFile(path, fs=store)

paths = [
    "naturalearth_cities_part1.parquet",
    "naturalearth_cities_part2.parquet",
    "naturalearth_cities_part3.parquet",
    "naturalearth_cities_part4.parquet",
    "naturalearth_cities_part5.parquet",
]
dataset = ParquetDataset(paths, fs=store)
table = dataset.read()
table.to_geopandas()
image

@kylebarron
Copy link
Member Author

@H-Plus-Time
Copy link
Contributor

Alright, I've done a bit of digging, and it ended up being the handling of zero-length wkb geometries - using the same bbox for anything other than part-0026 results in zero rows, which in debug triggered panics in parse_geometry_to_native.

With a workaround in src/io/parquet/reader/async's read_builder function involving the table length (full details in the incoming PR), total execution time for me on a 100Mbps connection was about 15s (instant when targeting local of course).

@H-Plus-Time
Copy link
Contributor

The ParquetDataset structs will definitely benefit from a read_stream method though, I blew the wasm memory limit a bunch of times :| with bigger bboxes.

@kylebarron
Copy link
Member Author

Alright, I've done a bit of digging, and it ended up being the handling of zero-length wkb geometries - using the same bbox for anything other than part-0026 results in zero rows, which in debug triggered panics in parse_geometry_to_native.

That is amazing! Thank you so much for debugging this!

@kylebarron
Copy link
Member Author

I blew the wasm memory limit a bunch of times :| with bigger bboxes.

I think this will also improve when I re-enable

// Need to fix the column ordering of the row filter inside construct_predicate
// builder = apply_bbox_row_filter(builder, bbox_cols, bbox)?;

This was implemented here:

let predicate = ArrowPredicateFn::new(mask, move |batch| {
let struct_col = batch.column(0).as_struct();
///////////////////////////////////////////////
// TODO: come back to this
///////////////////////////////////////////////
let minx_col = struct_col.column(0).as_primitive::<Float64Type>();
let maxx_col = struct_col.column(1).as_primitive::<Float64Type>();
let miny_col = struct_col.column(2).as_primitive::<Float64Type>();
let maxy_col = struct_col.column(3).as_primitive::<Float64Type>();
let minx_scalar = Scalar::new(Float64Array::from(vec![bbox_query.lower().x()]));
let miny_scalar = Scalar::new(Float64Array::from(vec![bbox_query.lower().y()]));
let maxx_scalar = Scalar::new(Float64Array::from(vec![bbox_query.upper().x()]));
let maxy_scalar = Scalar::new(Float64Array::from(vec![bbox_query.upper().y()]));
let minx_cmp = gt_eq(minx_col, &minx_scalar).unwrap();
let miny_cmp = gt_eq(miny_col, &miny_scalar).unwrap();
let maxx_cmp = lt_eq(maxx_col, &maxx_scalar).unwrap();
let maxy_cmp = lt_eq(maxy_col, &maxy_scalar).unwrap();
let first = arrow::compute::and(&minx_cmp, &miny_cmp).unwrap();
let second = arrow::compute::and(&first, &maxx_cmp).unwrap();
let third = arrow::compute::and(&second, &maxy_cmp).unwrap();
Ok(third)
});

But the issue is that the order of the columns in that struct is the same as the original data, not in our query. So for example, the overture data is laid out as xmin, xmax, ymin, ymax. So I need to add a few lines of code to ensure we're matching the correct indices into the struct based on the names.

But for something like the overture data, where attributes are quite large in comparison to the bbox columns, this should significantly improve perf and memory use, because attributes won't even be decoded from Parquet for pages that are excluded from the bounding box query.

E.g. I was just testing with overture buildings data with a small bounding box over Boston and received a 900k row dataset, where the first 100k rows are nowhere near Boston:
image

I imagine that a small number of data pages actually intersect the query of interest.

@kylebarron
Copy link
Member Author

@H-Plus-Time it turns out that what I thought was a deadlock was actually a horrible Deno bug: denoland/deno#23385

@H-Plus-Time
Copy link
Contributor

Yeah, I feel like it's jupyter kernel specific too, the moment I switched from deno run to using jupyter, and accidentally triggered a panic (e.g. url that pointed nowhere) - hanging forever.

@kylebarron
Copy link
Member Author

I got the same behavior outside of Jupyter, but it had to be async

kylebarron pushed a commit that referenced this issue Apr 16, 2024
NB: based on the #609 branch, and duplicates the zero-row handling in
the read_stream inner closure for ParquetFile (any alterations during
review, I'll reflect them here too).

From testing, there's definitely serial behaviour going on, I suspect a
buffer stream combinator at some level is warranted (unsure which, maybe
at row groups?). For the bbox/overture maps dataset discussed in #608 ,
total execution time increased from 15s to 19s (reliably).
kylebarron added a commit that referenced this issue Apr 17, 2024
Closes #593. Ref
#608 (comment)

🚀 


![image](https://github.com/geoarrow/geoarrow-rs/assets/15164633/5f16b059-4018-4400-9b45-8f5e0b79e80c)

```py
import json
import pyarrow as pa
from lonboard import PolygonLayer, Map
from geoarrow.rust.core import ParquetDataset, ObjectStore, ParquetFile
import geoarrow.pyarrow

geoarrow.pyarrow.register_extension_types()

url = "s3://overturemaps-us-west-2"
options = {
    "aws_access_key_id": "redacted",
    "aws_secret_access_key": "redacted",
    "aws_region": "us-west-2",
}
store = ObjectStore(url, options)

with open('urls.json') as f:
    paths = json.load(f)

requested_bounds = [-71.125849,42.323234,-71.006592,42.40025]

%time dataset = ParquetDataset(paths, fs=store)

bbox_paths = {
    "minx_path": ['bbox', 'minx'],
    "miny_path": ["bbox", "miny"],
    "maxx_path": ["bbox", "maxx"],
    "maxy_path": ["bbox", "maxy"],
}

test_dataset = await dataset.read_async(bbox=requested_bounds, bbox_paths=bbox_paths)
pa_table = pa.table(test_dataset)

layer = PolygonLayer(table=pa_table.select(['geometry']).slice(0, 100_000))
m = Map(layer)
m
```

where `urls.json` is the following, the urls from `aws s3 ls
s3://overturemaps-us-west-2/release/2024-03-12-alpha.0/theme=buildings/type=building/`:

<details>

```json
[
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00000-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00001-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00002-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00003-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00004-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00005-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00006-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00007-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00008-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00009-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00010-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00011-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00012-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00013-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00014-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00015-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00016-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00017-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00018-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00019-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00020-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00021-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00022-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00023-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00024-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00025-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00026-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00027-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00028-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00029-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00030-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00031-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00032-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00033-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00034-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00035-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00036-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00037-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00038-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00039-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00040-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00041-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00042-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00043-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00044-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00045-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00046-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00047-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00048-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00049-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00050-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00051-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00052-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00053-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00054-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00055-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00056-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00057-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00058-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00059-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00060-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00061-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00062-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00063-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00064-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00065-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00066-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00067-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00068-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00069-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00070-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00071-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00072-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00073-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00074-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00075-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00076-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00077-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00078-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00079-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00080-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00081-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00082-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00083-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00084-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00085-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00086-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00087-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00088-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00089-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00090-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00091-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00092-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00093-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00094-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00095-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00096-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00097-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00098-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00099-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00100-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00101-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00102-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00103-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00104-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00105-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00106-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00107-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00108-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00109-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00110-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00111-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00112-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00113-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00114-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00115-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00116-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00117-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00118-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00119-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00120-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00121-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00122-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00123-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00124-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00125-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00126-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00127-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00128-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00129-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00130-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00131-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00132-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00133-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00134-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00135-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00136-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00137-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00138-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00139-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00140-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00141-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00142-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00143-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00144-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00145-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00146-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00147-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00148-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00149-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00150-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00151-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00152-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00153-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00154-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00155-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00156-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00157-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00158-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00159-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00160-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00161-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00162-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00163-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00164-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00165-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00166-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00167-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00168-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00169-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00170-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00171-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00172-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00173-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00174-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00175-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00176-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00177-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00178-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00179-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00180-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00181-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00182-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00183-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00184-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00185-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00186-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00187-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00188-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00189-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00190-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00191-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00192-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00193-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00194-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00195-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00196-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00197-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00198-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00199-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00200-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00201-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00202-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00203-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00204-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00205-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00206-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00207-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00208-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00209-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00210-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00211-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00212-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00213-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00214-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00215-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00216-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00217-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00218-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00219-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00220-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00221-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00222-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00223-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00224-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00225-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00226-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00227-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00228-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00229-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00230-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet",
  "release/2024-03-12-alpha.0/theme=buildings/type=building/part-00231-4dfc75cd-2680-4d52-b5e0-f4cc9f36b267-c000.zstd.parquet"
]
```

</details>

Testing this in Python it still hangs 😭 . Edit: Looks like it's
something with the tokio integration? It _works_ when using the async
API from Python
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants