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
- Ordine alfabetico delle funzioni geospaziali list #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 collegamento di set di dati è semanticamente un joinspaziale, 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, 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 in get 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._
List delle funzioni geospaziali di H3 (Databricks SQL)
Import
Funzione | Descrizione |
---|---|
h3_coverash3(geographyExpr, resolutionExpr) | Restituisce un array di ID cella H3 (rappresentati come BIGINT) corrispondenti al minimo set di esagoni o pentagoni, della risoluzione specificata, che coprono completamente la lineare o l'area geografica dell'input. |
h3_coverash3string(geographyExpr, resolutionExpr) | Restituisce un array di ID cella H3 (rappresentati come STRING) corrispondenti al numero minimo set di esagoni o pentagoni, della risoluzione specificata, che ricoprono interamente la geografia lineare o areale fornita. |
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. |
Compattazione
Funzione | Descrizione |
---|---|
h3_compact(h3CellIdsExpr) | Compatta al massimo l'input set degli ID delle celle H3. |
h3_uncompact(h3CellIdsExpr, resolutionExpr) | Decompatta l'input set degli ID delle celle H3 alla risoluzione specificata. |