Loading your files
Your download page lists the files your purchase includes. Find each file's format below. Every example runs as written with DuckDB (the command-line tool, or the duckdb Python package); replace the file name with yours. Download links last 24 hours; re-issue one from your account page. Column meanings are in the data dictionary.
CSV (gzip)
UTF-8, a header row, RFC 4180 quoting, gzip-compressed. DuckDB and most tools read the .gz directly; there is no need to unzip it first.
SELECT count(*) AS rows FROM read_csv('brand.csv.gz', header = true);
SELECT poi_id, name FROM read_csv('brand.csv.gz', header = true) LIMIT 5;import duckdb
con = duckdb.connect()
rows = con.sql("SELECT poi_id, name FROM read_csv('brand.csv.gz', header = true)").fetchall()
print(len(rows))CSV in several parts
Very large datasets arrive as ordered parts of one file. Keep every part in one folder and read them together with a wildcard; each part carries the header row.
SELECT count(*) AS rows FROM read_csv('full-us-master-part-*.csv.gz', header = true, union_by_name = true);Parquet
Columnar and typed. The fastest way into a warehouse or a dataframe; column types come with the file.
SELECT count(*) AS rows FROM read_parquet('brand.parquet');
SELECT poi_id, name FROM read_parquet('brand.parquet') LIMIT 5;import duckdb
con = duckdb.connect()
rows = con.sql("SELECT poi_id, name FROM read_parquet('brand.parquet')").fetchall()
print(len(rows))Parquet in several parts
Ordered parts of one dataset. Read them together with a wildcard.
SELECT count(*) AS rows FROM read_parquet('full-us-master-part-*.parquet');Building geometry (.geo.parquet)
The optional building-footprint add-on ships as its own Parquet file beside the data. Read it like any Parquet file.
SELECT count(*) AS rows FROM read_parquet('brand.geo.parquet');NOTICE.txt
The attribution notice for your licence tier. Keep it with the data wherever the data goes; your licence requires it.