Funzioni geospaziali H3
Si applica a: Databricks SQL
Databricks Runtime
H3 è un sistema di indicizzazione griglia globale. I sistemi griglia usano una forma, come rettangoli o triangoli, per tassellare una superficie, che in questo caso è la superficie terrestre. Il sistema H3 è stato progettato per usare esagoni (e alcuni pentagoni) e offre 16 livelli di risoluzioni all'interno della sua gerarchia. A risoluzioni superiori, le figure tassellate sono più piccole.
Le espressioni H3 sono supportate solo nei cluster abilitati per Photon e nei databricks SQL warehouse nei livelli di Databricks SQL pro e serverless.
Altre informazioni sulle risoluzioni H3 e sulle origini di H3.
Vedere anche:
- Guida introduttiva H3 (Databricks SQL)
- Esempio di funzioni geospaziali H3
- elenco alfabetico delle funzioni geospaziali H3
H3 per l'analisi geospaziale
H3 supporta un modello comune per l'elaborazione e l'analisi dei dati spaziali. Avviare indicizzando i dati geospaziali da formati standard (latitudine e longitudine, Well-known text (WKT), Well-known binary (WKB), o GeoJSON), verso gli ID delle celle H3. Con un singolo set di dati, è possibile aggregare in base all'ID cella per rispondere alle domande basate sulla posizione. Con più set di dati indicizzati, è possibile combinarli usando gli ID cella, rivelando la correlazione tra set di dati diversi. Questa unione di set di dati è, dal punto di vista semantico, un join spaziale, ma senza la necessità di un predicato spaziale.
Quali sono i vantaggi dell'uso di H3 in Databricks?
Sfruttare le funzionalità delta Lake per l'archiviazione e il layout efficienti dei dati indicizzati H3. L'operazione OPTIMIZE di Delta Lake con l'ordinamento Z (sugli ID di cella H3) consente di concentrare i dati geograficamente. Inoltre, Delta Lake utilizza algoritmi di data skipping che sfruttano la co-località per ridurre in modo intelligente il volume di dati da leggere.
Si ha flessibilità nel modo in cui si lavora con i dati. È possibile scegliere di usare gli ID cella H3 archiviati come numeri interi o stringhe di grandi dimensioni. Per ottenere prestazioni ottimali usando gli ID cella H3, usare la rappresentazione di numeri interi grandi. Per un uso dettagliato delle espressioni H3, vedere la guida di riferimento a SQL.
Nota
Non è necessario installare la libreria H3. È inclusa come dipendenza visibile in Databricks Runtime, a partire da Databricks Runtime 11.2, usando la versione 3.7.0 della libreria Java H3.
Importare le funzioni di Databricks per ottenere H3 (Databricks Runtime)
Nessuna importazione necessaria per Sql Databricks e Spark SQL.
Per importare le funzioni H3 per Python o Scala nei notebook, usare i comandi seguenti:
Python
from pyspark.databricks.sql import functions as dbf
Scala
import com.databricks.sql.functions._
Elenco di funzioni geospaziali H3 (Databricks SQL)
Importazione
Funzione | Descrizione |
---|---|
h3_coverash3(geographyExpr, resolutionExpr) | Restituisce un array di ID cella H3 (rappresentati come BIGINT) corrispondenti al set minimo di esagoni o pentagoni, della risoluzione specificata, che coprono completamente la geografia lineare o areale di input. |
h3_coverash3string(geographyExpr, resolutionExpr) | Restituisce un array di ID di celle H3 (rappresentati come stringa) corrispondenti al set minimo di esagoni o pentagoni, della risoluzione specificata, che copre completamente l'unità lineare o area geografica di input. |
h3_longlatash3(longitudeExpr, latitudeExpr, resolutionExpr) | Restituisce l'ID cella H3 (come BIGINT) corrispondente alla longitudine e alla latitudine fornite alla risoluzione indicata. |
h3_longlatash3string(longitudeExpr, latitudeExpr, resolutionExpr) | Restituisce l'ID cella H3 (come stringa esadecimale) corrispondente alla longitudine e alla latitudine fornite alla risoluzione specificata. |
h3_pointash3(geographyExpr, resolutionExpr) | Restituisce l'ID cella H3 (come BIGINT) corrispondente al punto fornito alla risoluzione specificata. |
h3_pointash3string(geographyExpr, resolutionExpr) | Restituisce l'ID della cella H3 (come stringa) corrispondente al punto fornito alla risoluzione specificata. |
h3_polyfillash3(geographyExpr, resolutionExpr) | Restituisce un array di ID cella H3 (rappresentati come BIGINT) corrispondenti agli esagoni o ai pentagoni, della risoluzione specificata, che sono contenuti nella geografia dell'area di input. |
h3_polyfillash3string(geographyExpr, resolutionExpr) | Restituisce un ARRAY di ID cella H3 (rappresentati come STRING) che corrispondono agli esagoni o ai pentagoni, della risoluzione specificata, contenuti nella geografia areale di input. |
h3_tessellateaswkb(geographyExpr, resolutionExpr) | Restituisce una tassellatura dell'area geografica di input utilizzando celle H3 alla risoluzione specificata. |
h3_try_polyfillash3(geographyExpr, resolutionExpr) | Restituisce un array di ID cella H3 (rappresentati come BIGINT) corrispondenti a esagoni o pentagoni, della risoluzione specificata, che sono contenuti nell'area geografica di input. |
h3_try_polyfillash3string(geographyExpr, resolutionExpr) | Restituisce un array di ID cella H3 (rappresentati come STRING) che corrispondono agli esagoni o pentagoni, contenuti nella geografia area dell'input, della risoluzione specificata. |
Esportazione
Funzione | Descrizione |
---|---|
h3_boundaryasgeojson(h3CellIdExpr) | Restituisce il limite poligonale della cella H3 di input in formato GeoJSON . |
h3_boundaryaswkb(h3CellIdExpr) | Restituisce il limite poligonale della cella H3 di input in formato WKB . |
h3_boundaryaswkt(h3CellIdExpr) | Restituisce il limite poligonale della cella H3 di input in formato WKT . |
h3_centerasgeojson(h3CellIdExpr) | Restituisce il centro della cella H3 di input come punto in formato GeoJSON . |
h3_centeraswkb(h3CellIdExpr) | Restituisce il centro della cella H3 di input come punto in formato WKB . |
h3_centeraswkt(h3CellIdExpr) | Restituisce il centro della cella H3 di input come punto in formato WKT . |
Conversioni
Funzione | Descrizione |
---|---|
h3_h3tostring(h3CellIdExpr) | Converte l'ID cella H3 di input nella rappresentazione di stringa esadecimale equivalente. |
h3_stringtoh3(h3CellIdStringExpr) | Converte la stringa di input, che dovrebbe essere una stringa esadecimale che rappresenta un ID cella H3, nella rappresentazione BIGINT corrispondente dell'ID cella H3. |
Predicati
Funzione | Descrizione |
---|---|
h3_ischildof(h3CellId1Expr, h3CellId2Expr) | Restituisce true se il primo ID cella H3 è uguale o figlio del secondo ID cella H3. |
h3_ispentagon(h3CellIdExpr) | Restituisce true se l'input BIGINT o STRING esadecimale corrisponde o meno a una cella H3 pentagonale. |
Validità
Funzione | Descrizione |
---|---|
h3_isvalid(expr) | Restituisce true se l'input BIGINT o STRING è un ID cella H3 valido. |
h3_try_validate(h3CellIdExpr) | Restituisce il valore di input, di tipo BIGINT o STRING, se corrisponde a un ID cella H3 valido o NULL in caso contrario. |
h3_validate(h3CellIdExpr) | Restituisce il valore di input, di tipo BIGINT o STRING, se corrisponde a un ID di cella H3 valido o genera un errore in caso contrario. |
Distanza correlata
Funzione | Descrizione |
---|---|
h3_distance(h3CellId1Expr, h3CellId2Expr) | Restituisce la distanza nella griglia dei due ID cella H3 di input. |
h3_hexring(h3CellIdExpr, kExpr) | Restituisce un array di ID delle celle H3 che formano un anello esagonale vuoto centrato nella cella H3 di origine e che si trovano a una distanza di griglia k dalla cella H3 di origine. |
h3_kring(h3CellIdExpr, kExpr) | Restituisce gli ID di cella H3 che si trovano entro la distanza k (griglia) dell'ID cella di origine. |
h3_kringdistances(h3CellIdExpr, kExpr) | Restituisce tutti gli ID cella H3 (rappresentati come numeri interi lunghi o stringhe) entro la distanza k della griglia dall'ID cella H3 di origine, insieme alla relativa distanza dall'ID cella H3 di origine. |
h3_try_distance(h3CellId1Expr, h3CellId2Expr) | Restituisce la distanza reticolare dei due ID cella H3 di input della stessa risoluzione o NULL se la distanza non è definita. |
Attraversamento
Funzione | Descrizione |
---|---|
h3_maxchild(h3CellIdExpr, resolutionExpr) | Restituisce l'elemento figlio del valore massimo della cella H3 di input alla risoluzione specificata. |
h3_minchild(h3CellIdExpr, resolutionExpr) | Restituisce il figlio con il valore minimo dalla cella H3 di input alla risoluzione specificata. |
h3_resolution(h3CellIdExpr) | Restituisce la risoluzione dell'ID cella H3 di input. |
h3_tochildren(h3CellIdExpr, resolutionExpr) | Restituisce una matrice degli ID cella H3 figlio dell'ID cella H3 di input alla risoluzione specificata. |
h3_toparent(h3CellIdExpr, resolutionExpr) | Restituisce l'ID cella H3 padre dell'ID cella H3 di input alla risoluzione specificata. |
Compattazione
Funzione | Descrizione |
---|---|
h3_compact(h3CellIdsExpr) | Compatta il più possibile il set di input degli ID delle celle H3. |
h3_uncompact(h3CellIdsExpr, resolutionExpr) | Espande il set di input degli ID delle celle H3 alla risoluzione specificata. |