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 forme a mosaico 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 A3 (Databricks SQL)
- Esempio di funzioni geospaziali H3
- Elenco alfabetico di funzioni geospaziali H3
H3 per l'analisi geospaziale
H3 supporta un modello comune per l'elaborazione e l'analisi dei dati spaziali. Per iniziare, indicizzare i dati geospaziali da formati standard (latitudine e longitudine, testo noto (WKT), binario noto (WKB) o GeoJSON agli ID cella 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. Questo join di set di dati è semanticamente 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 co-individuare i dati in modo spaziale. Inoltre, gli algoritmi di skipping dei dati di Delta Lake usano la co-località per ridurre in modo intelligente il volume di dati che devono essere letti.
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)
Importa
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 l'input lineare o sono geografia. |
h3_coverash3string(geographyExpr, resolutionExpr) | Restituisce un array di ID cella H3 (rappresentato come STRING) corrispondente al set minimo di esagoni o pentagoni, della risoluzione specificata, che copre completamente l'input lineare o geografica. |
h3_longlatash3(longitudeExpr, latitudeExpr, resolutionExpr) | Restituisce l'ID cella H3 (come BIGINT) corrispondente alla longitudine e alla latitudine specificate alla risoluzione specificata. |
h3_longlatash3string(longitudeExpr, latitudeExpr, resolutionExpr) | Restituisce l'ID cella H3 (come STRINGA esadecimale) corrispondente alla longitudine e alla latitudine specificate 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 cella H3 (come STRINGA) corrispondente al punto specificato 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, contenuti nell'input geografico. |
h3_polyfillash3string(geographyExpr, resolutionExpr) | Restituisce un array di ID cella H3 (rappresentati come STRING) corrispondenti agli esagoni o ai pentagoni, della risoluzione specificata, contenuti nell'input geografico. |
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 agli esagoni o ai pentagoni, della risoluzione specificata, contenuti nell'input geografico. |
h3_try_polyfillash3string(geographyExpr, resolutionExpr) | Restituisce un array di ID cella H3 (rappresentati come STRING) corrispondenti agli esagoni o ai pentagoni, della risoluzione specificata, contenuti nell'input geografico. |
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 della griglia dei due ID cella H3 di input. |
h3_hexring(h3CellIdExpr, kExpr) | Restituisce una matrice di ID cella H3 che formano un anello esagonale vuoto centrato nella cella H3 di origine e che si trovano a distanza k griglia 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 della griglia 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 l'elemento figlio del valore minimo della 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. |
Compattamento
Funzione | Descrizione |
---|---|
h3_compact(h3CellIdsExpr) | Compatta il set di input di ID cella H3 il più possibile. |
h3_uncompact(h3CellIdsExpr, resolutionExpr) | Annulla il completamento del set di input di ID cella H3 alla risoluzione specificata. |