Compartilhar via


Funções H3 geoespaciais

Aplica-se a: marca de seleção positiva Databricks SQL marca de seleção positiva Azure Databricks Runtime

H3 é um sistema global de indexação de grade. Sistemas de grade usam uma forma, como retângulos ou triângulos, para criar mosaico em uma superfície, que neste caso é a superfície da Terra. O sistema H3 foi projetado para usar hexágonos (e alguns pentágonos) e oferece 16 níveis de resoluções dentro de sua hierarquia. Em resoluções mais altas, as formas tesseladas são menores.

As expressões H3 têm suporte somente em clusters habilitados para Photon e warehouses do Databricks SQL nas camadas pro/sem servidor do Databricks SQL.

Leia mais sobre resoluções do H3 e sobre as origens do H3.

Consulte também:

H3 para Análise Geoespacial

O H3 dá suporte a um padrão comum para processar e analisar dados espaciais. Comece indexando dados geoespaciais de formatos padrão (latitude e longitude, WKT (texto conhecido),WKB (binário conhecido) ou GeoJSON para IDs de célula H3. Com um único conjunto de dados, você pode agregar por ID de célula para responder a perguntas controladas por localização. Com vários conjuntos de dados indexados, é possível combiná-los usando as IDs de célula, revelando como conjuntos de dados diferentes se relacionam um com o outro. Essa junção de conjuntos de dados é semanticamente uma junção espacial, mas sem a necessidade de um predicado espacial.

Quais são os benefícios de usar o H3 no Databricks?

Aproveite os recursos do Delta Lake para obter um armazenamento e layout eficientes dos dados indexados do H3. A operação OPTIMIZE do Delta Lake com ordenação Z (em IDs de célula H3) permite que você co-localize dados espacialmente. Além disso, os algoritmos de omissão de dados do Delta Lake usam a co-localidade para reduzir de forma inteligente o volume de dados que precisa ser lido.

Você tem flexibilidade no modo como trabalha com os dados. Você pode optar por trabalhar com IDs de célula H3 armazenadas como grandes inteiros ou cadeias de caracteres. Para obter o melhor desempenho usando IDs de célula H3, use a representação de inteiro grande. Para ver o uso detalhado de expressões H3, confira o guia de referência do SQL.

Observação

Você não precisa instalar a biblioteca H3. Ela está incluída como uma dependência visível no Databricks Runtime, a partir do Databricks Runtime 11.2, usando a versão 3.7.0 da biblioteca Java H3.

Importar funções do Databricks para obter H3 (Databricks Runtime)

Nenhuma importação necessária para o SQL do Databricks e o SQL do Spark.

Para importar funções H3 para Python ou Scala em notebooks, use os comandos a seguir:

Python

from pyspark.databricks.sql import functions as dbf

Scala

import com.databricks.sql.functions._

Lista de funções H3 geoespaciais (Databricks SQL)

Importar

Função Descrição
h3_coverash3(geographyExpr, resolutionExpr) Retorna uma ARRAY de IDs de célula H3 (representadas como BIGINT) correspondentes ao conjunto mínimo de hexágonos ou pentágonos, da resolução especificada, que cobrem totalmente a área ou linha geográfica de entrada.
h3_coverash3string(geographyExpr, resolutionExpr) Retorna uma ARRAY de IDs de célula H3 (representadas como STRING) correspondentes ao conjunto mínimo de hexágonos ou pentágonos, da resolução especificada, que cobrem totalmente a área ou linha geográfica de entrada.
h3_longlatash3(longitudeExpr, latitudeExpr, resolutionExpr) Retorna a ID da célula H3 (como um BIGINT) correspondente à longitude e latitude fornecidas na resolução especificada.
h3_longlatash3string(longitudeExpr, latitudeExpr, resolutionExpr) Retorna a ID da célula H3 (como uma série hexadecimal) correspondente à longitude e latitude fornecidas na resolução especificada.
h3_pointash3(geographyExpr, resolutionExpr) Retorna a ID da célula H3 (como um BIGINT) correspondente ao ponto fornecido na resolução especificada.
h3_pointash3string(geographyExpr, resolutionExpr) Retorna a ID da célula H3 (como uma STRING) correspondente ao ponto fornecido na resolução especificada.
h3_polyfillash3(geographyExpr, resolutionExpr) Retorna uma ARRAY de IDs de célula H3 (representadas como BIGINT) correspondentes a hexágonos ou pentágonos, da resolução especificada, que estão contidas na área geográfica de entrada.
h3_polyfillash3string(geographyExpr, resolutionExpr) Retorna uma ARRAY de IDs de célula H3 (representada como STRING) correspondentes a hexágonos ou pentágonos, da resolução especificada, que estão contidas na área geográfica de entrada.
h3_tessellateaswkb(geographyExpr, resolutionExpr) Retorna um mosaico da geografia de entrada usando células H3 na resolução especificada.
h3_try_polyfillash3(geographyExpr, resolutionExpr) Retorna uma ARRAY de IDs de célula H3 (representadas como BIGINT) correspondentes a hexágonos ou pentágonos, da resolução especificada, que estão contidas na área geográfica de entrada.
h3_try_polyfillash3string(geographyExpr, resolutionExpr) Retorna uma ARRAY de IDs de célula H3 (representada como STRING) correspondentes a hexágonos ou pentágonos, da resolução especificada, que estão contidas na área geográfica de entrada.

Exportação

Função Descrição
h3_boundaryasgeojson(h3CellIdExpr) Retorna o limite poligonal da célula de entrada H3 no formato GeoJSON.
h3_boundaryaswkb(h3CellIdExpr) Retorna o limite poligonal da célula de entrada H3 no formato WKB.
h3_boundaryaswkt(h3CellIdExpr) Retorna o limite poligonal da célula de entrada H3 no formato WKT.
h3_centerasgeojson(h3CellIdExpr) Retorna o centro da célula de entrada H3 como um ponto no formato GeoJSON.
h3_centeraswkb(h3CellIdExpr) Retorna o centro da célula de entrada H3 como um ponto no formato WKB.
h3_centeraswkt(h3CellIdExpr) Retorna o centro da célula de entrada H3 como um ponto no formato WKT.

Conversões

Função Descrição
h3_h3tostring(h3CellIdExpr) Converte a ID da célula H3 de entrada em sua representação de cadeia de caracteres hexadecimal equivalente.
h3_stringtoh3(h3CellIdStringExpr) Converte a cadeia de entrada, que deve ser uma cadeia hexadecimal que representa uma ID de célula H3, para a representação BIGINT correspondente da ID da célula H3.

Predicados

Função Descrição
h3_ischildof(h3CellId1Expr, h3CellId2Expr) Retorna verdadeiro se a primeira ID da célula H3 for igual ou um filho da segunda ID da célula H3.
h3_ispentagon(h3CellIdExpr) Retorna verdadeiro se a entrada BIGINT ou CADEIA de caracteres hexadecimal corresponder a uma célula H3 pentagonal ou não.

Validade

Função Descrição
h3_isvalid(expr) Retorna true se a entrada BIGINT ou STRING for uma ID de célula H3 válida.
h3_try_validate(h3CellIdExpr) Retorna o valor de entrada, que é do tipo BIGINT ou STRING, se corresponder a uma ID de célula H3 válida ou, caso contrário, NULL.
h3_validate(h3CellIdExpr) Retorna o valor de entrada, que é do tipo BIGINT ou STRING, se corresponder a uma ID de célula H3 válida ou emite um erro, caso contrário.
Função Descrição
h3_distance(h3CellId1Expr, h3CellId2Expr) Retorna a distância da grade das duas IDs de célula H3 de entrada.
h3_hexring(h3CellIdExpr, kExpr) Retorna uma matriz de IDs de célula H3 que formam um anel vazado hexagonal centralizado na célula H3 de origem e que estão a uma distância k da grade da célula H3 de origem.
h3_kring(h3CellIdExpr, kExpr) Retorna as IDs de célula H3 que estão dentro da (grade) k de distância da célula de origem.
h3_kringdistances(h3CellIdExpr, kExpr) Retorna todas as IDs da célula H3 (representadas como inteiros longos ou cadeias) dentro da distância k da grade da ID da célula H3 de origem, juntamente com a distância da ID da célula H3 de origem.
h3_try_distance(h3CellId1Expr, h3CellId2Expr) Retorna a distância da grade das duas IDs de célula H3 de entrada da mesma resolução ou NULL se a distância for indefinida.

Traversal

Função Descrição
h3_maxchild(h3CellIdExpr, resolutionExpr) Retorna o filho do valor máximo da célula H3 de entrada na resolução especificada.
h3_minchild(h3CellIdExpr, resolutionExpr) Retorna o filho do valor mínimo da célula H3 de entrada na resolução especificada.
h3_resolution(h3CellIdExpr) Retorna a resolução da ID de célula H3 de entrada.
h3_tochildren(h3CellIdExpr, resolutionExpr) Retorna uma matriz das IDs de célula H3 filhos da ID de célula H3 de entrada na resolução especificada.
h3_toparent(h3CellIdExpr, resolutionExpr) Retorna a ID de célula H3 pai da ID de célula H3 de entrada na resolução especificada.

Compactação

Função Descrição
h3_compact(h3CellIdsExpr) Compacta o conjunto de entrada de IDs de célula H3 da melhor maneira possível.
h3_uncompact(h3CellIdsExpr, resolutionExpr) Descompacta o conjunto de entrada de IDs de célula H3 para a resolução especificada.