Przewodnik Szybki start H3 (Databricks SQL)

Przewodnik Szybki start dotyczący funkcji geoprzestrzennych H3 na tej stronie ilustruje następujące kwestie:

  • Jak załadować zestawy danych geolokalizacji do katalogu aparatu Unity.
  • Jak przekonwertować kolumny szerokości geograficznej i długości geograficznej na kolumny komórek H3.
  • Jak przekonwertować wielokąt lub wielopolygon kolumn WKT kodu pocztowego na kolumny komórek H3.
  • Jak wykonywać zapytania dotyczące analizy odbioru i dropoff z lotniska LaGuardia do Dzielnicy Finansowej Manhattanu.
  • Jak renderować liczbę agregacji H3 na mapie.

Przykładowe notesy i zapytania

Przygotowywanie danych wykazu aparatu Unity

W tym notesie:

  • Skonfiguruj publiczny zestaw danych taksówek z systemu plików usługi Databricks.
  • Skonfiguruj zestaw danych kodu pocztowego NYC.

Przygotowywanie danych wykazu aparatu Unity

Pobierz notes

Zapytania SQL usługi Databricks za pomocą środowiska Databricks Runtime 11.3 LTS lub nowszego

Zapytanie 1. Sprawdź, czy podstawowe dane zostały skonfigurowane. Zobacz Notes.

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;

Zapytanie 2: Kod pocztowy H3 NYC — zastosuj h3_polyfillash3 w rozdzielczości 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;

Zapytanie 3: H3 Taksówki — zastosuj h3_longlatash3 w rozdzielczości 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;

Zapytanie 4: H3 PICKUPy LGA - 25M pickupy z 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;

Zapytanie 5: H3 Financial District Dropoffs - 34M total drop offs in Financial District

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;

Zapytanie 6: H3 LGA-FD - 827K spadki w FD z odbiorem z 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;

Zapytanie 7: LGA-FD według kodu pocztowego — policz listy rozwijane FD według kodu pocztowego i wykresu słupkowego

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;

Zapytanie 8: LGA-FD według H3 — liczba list rozwijanych FD według komórki H3 + wizualizacja znacznika mapy

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;

Liczba H3 LGA-FD 1

LICZBA H3 LGA-FD 2

Notesy dla środowiska Databricks Runtime 11.3 LTS i nowszych

Szybki start-Python: H3 NYC Taxi LaGuardia do Manhattanu

Pobierz notes

Taka sama struktura szybkiego startu jak w usłudze Databricks SQL przy użyciu powiązań języka Python platformy Spark w notesach i kepler.gl.

Szybki start-Scala: H3 NYC Taxi LaGuardia do Manhattanu

Pobierz notes

Taka sama struktura przewodnika Szybki start jak w usłudze Databricks SQL przy użyciu powiązań języka Spark Scala w notesach i kepler.gl za pośrednictwem komórek języka Python.

Szybki start-SQL: H3 NYC Taxi LaGuardia na Manhattan

Pobierz notes

Taka sama struktura szybkiego startu jak w usłudze Databricks SQL przy użyciu powiązań Spark SQL w notesach i kepler.gl za pośrednictwem komórek języka Python.