Démarrage rapide H3 (Databricks SQL)
Le guide de démarrage rapide des fonctions géospatiales H3 de cette page illustre ce qui suit :
- Comment charger des jeux de données de géolocalisation dans Unity Catalog
- Comment convertir des colonnes de latitude et longitude en colonnes de cellule H3
- Comment convertir des colonnes WKT polygonales ou multipolygonales de code postal en colonnes de cellule H3
- Comment interroger l’analyse des prises en charge et déposes depuis l’aéroport de LaGuardia vers le quartier financier de Manhattan
- Comment afficher des nombres agrégés H3 sur une carte
Exemples de notebooks et de requêtes
Préparer les données Unity Catalog
Dans ce notebook, nous effectuons les opérations suivantes :
- Configuration du jeu de données de taxis publics à partir du système de fichiers Databricks
- Configuration du jeu de données NYC Zip Code
Préparation des données Unity Catalog
Requêtes Databricks SQL avec Databricks Runtime 11.3+ LTS et versions ultérieures
Requête 1 : vérifier que les données de base ont été configurées. Consultez Notebook.
use catalog geospatial_docs;
use database nyc_taxi;
show tables;
-- Verify initial data is setup (see instructions in setup notebook)
-- select format_number(count(*),0) as count from yellow_trip;
-- select * from nyc_zipcode;
Requête 2 : H3 Code postal NYC – Appliquer h3_polyfillash3 à la résolution 12
.
use catalog geospatial_docs;
use database nyc_taxi;
-- drop table if exists nyc_zipcode_h3_12;
create table if not exists nyc_zipcode_h3_12 as (
select
explode(h3_polyfillash3(geom_wkt, 12)) as cell,
zipcode,
po_name,
county
from
nyc_zipcode
);
-- optional: zorder by `cell`
optimize nyc_zipcode_h3_12 zorder by (cell);
select
*
from
nyc_zipcode_h3_12;
Requête 3 : H3 Trajets en Taxi – Appliquer h3_longlatash3 à la résolution 12
.
use catalog geospatial_docs;
use database nyc_taxi;
-- drop table if exists yellow_trip_h3_12;
create table if not exists yellow_trip_h3_12 as (
select
h3_longlatash3(pickup_longitude, pickup_latitude, 12) as pickup_cell,
h3_longlatash3(dropoff_longitude, dropoff_latitude, 12) as dropoff_cell,
*
except
(
rate_code_id,
store_and_fwd_flag
)
from
yellow_trip
);
-- optional: zorder by `pickup_cell`
-- optimize yellow_trip_h3_12 zorder by (pickup_cell);
select
*
from
yellow_trip_h3_12
where pickup_cell is not null;
Requête 4 : H3 Prises en charge LGA – 25 millions de départs de LaGuardia (LGA)
use catalog geospatial_docs;
use database nyc_taxi;
create
or replace view lga_pickup_h3_12 as (
select
t.*
except(cell),
s.*
from
yellow_trip_h3_12 as s
inner join nyc_zipcode_h3_12 as t on s.pickup_cell = t.cell
where
t.zipcode = '11371'
);
select
format_number(count(*), 0) as count
from
lga_pickup_h3_12;
-- select
-- *
-- from
-- lga_pickup_h3_12;
Requête 5 : H3 Déposes au District Financier – 34 millions de déposes dans le quartier financier
use catalog geospatial_docs;
use database nyc_taxi;
create
or replace view fd_dropoff_h3_12 as (
select
t.*
except(cell),
s.*
from
yellow_trip_h3_12 as s
inner join nyc_zipcode_h3_12 as t on s.dropoff_cell = t.cell
where
t.zipcode in ('10004', '10005', '10006', '10007', '10038')
);
select
format_number(count(*), 0) as count
from
fd_dropoff_h3_12;
-- select * from fd_dropoff_h3_12;
Requête 6 : H3 LGA-FD – 827 000 déposes dans le quartier financier après une prise en charge à LGA
use catalog geospatial_docs;
use database nyc_taxi;
create
or replace view lga_fd_dropoff_h3_12 as (
select
*
from
fd_dropoff_h3_12
where
pickup_cell in (
select
distinct pickup_cell
from
lga_pickup_h3_12
)
);
select
format_number(count(*), 0) as count
from
lga_fd_dropoff_h3_12;
-- select * from lga_fd_dropoff_h3_12;
Requête 7 : LGA-FD par code postal – Nombre de déposes dans le quartier financier par code postal + histogramme
use catalog geospatial_docs;
use database nyc_taxi;
select
zipcode,
count(*) as count
from
lga_fd_dropoff_h3_12
group by
zipcode
order by
zipcode;
Requête 8 : LGA-FD par H3 – Nombre de déposes dans le quartier financier par cellule H3 + visualisation des marqueurs de carte
use catalog geospatial_docs;
use database nyc_taxi;
select
zipcode,
dropoff_cell,
h3_centerasgeojson(dropoff_cell) :coordinates [0] as dropoff_centroid_x,
h3_centerasgeojson(dropoff_cell) :coordinates [1] as dropoff_centroid_y,
format_number(count(*), 0) as count_disp,
count(*) as `count`
from
lga_fd_dropoff_h3_12
group by
zipcode,
dropoff_cell
order by
zipcode,
`count` DESC;
Notebooks pour Databricks Runtime 11.3 LTS et versions ultérieures
Démarrage rapide Python : Taxi NYC H3 LaGuardia à Manhattan
Même structure de démarrage rapide que dans Databricks SQL, en utilisant des liaisons Spark Python dans Notebooks + kepler.gl.
Démarrage rapide Scala : Taxi NYC H3 LaGuardia à Manhattan
Même structure de démarrage rapide que dans Databricks SQL, en utilisant des liaisons Spark Scala dans Notebooks + kepler.gl par le biais de cellules Python.
Démarrage rapide SQL : Taxi NYC H3 LaGuardia à Manhattan
Même structure de démarrage rapide que dans Databricks SQL, en utilisant des liaisons Spark SQL dans Notebooks + kepler.gl par le biais de cellules Python.