Геопространственные функции H3
Область применения: Databricks SQL Databricks Runtime
H3 — это глобальная система индексирования сетки. Системы сетки используют фигуру, например прямоугольники или треугольники, для тесселлате поверхность, которая в данном случае является поверхностью Земли. Система H3 была разработана для использования шестнадцатеричных (и нескольких пентагонов) и предлагает 16 уровней разрешения в своей иерархии. При более высоких разрешениях тесселатированные фигуры меньше.
Выражения H3 поддерживаются только в кластерах с поддержкой Photon и хранилищах SQL Databricks на уровнях Databricks SQL pro и бессерверных уровней.
Дополнительные сведения о разрешениях H3 и источниках H3.
См. также:
- Краткое руководство по H3 (Databricks SQL)
- Пример геопространственных функций H3
- Алфавитный список геопространственных функций H3
H3 для геопространственной аналитики
H3 поддерживает общий шаблон обработки и анализа пространственных данных. Начните с индексирования геопространственных данных из стандартных форматов (широта и долгота, известный текст (WKT),известный двоичный (WKB), или GeoJSON на идентификаторы ячеек H3. С помощью одного набора данных можно агрегировать по идентификатору ячейки, чтобы ответить на вопросы, управляемые расположением. С помощью нескольких индексированных наборов данных их можно объединить с помощью идентификаторов ячеек, показывая, как разнородные наборы данных связаны друг с другом. Это присоединение наборов данных семантически является пространственным соединением, но без необходимости в пространственном предикате.
Каковы преимущества использования H3 в Databricks?
Используйте функции Delta Lake для эффективного хранения и макета индексированных данных H3. Операция Delta Lake OPTIMIZE с Упорядочением Z (на идентификаторах ячеек H3) позволяет пространственно находить данные. Кроме того, алгоритмы пропускания данных Delta Lake используют совместное расположение для интеллектуального уменьшения объема данных, которые необходимо считывать.
У вас есть гибкость в работе с данными. Вы можете работать с идентификаторами ячеек H3, хранящимися в виде больших целых чисел или строк. Для оптимальной производительности с помощью идентификаторов ячеек H3 используйте большое целочисленное представление. Подробные сведения об использовании выражений H3 см. в руководстве по SQL.
Примечание.
Не нужно устанавливать библиотеку H3. Она включается в качестве видимой зависимости в Databricks Runtime, начиная с Databricks Runtime 11.2, используя версию 3.7.0 библиотеки Java H3.
Импорт функций Databricks для получения H3 (Среда выполнения Databricks)
Импорт не требуется для Databricks SQL и Spark SQL.
Чтобы импортировать функции H3 для Python или Scala в записных книжках, используйте следующие команды:
Python
from pyspark.databricks.sql import functions as dbf
Scala
import com.databricks.sql.functions._
Список геопространственных функций H3 (Databricks SQL)
Import
Function | Description |
---|---|
h3_coverash3(geographyExpr, resolutionExpr) | Возвращает массив идентификаторов ячеек H3 (представленных как BIGINT), соответствующий минимальному набору шестнадцатеугольников или пентагонов, которые полностью охватывают входную линейную или географию. |
h3_coverash3string(geographyExpr, resolutionExpr) | Возвращает массив идентификаторов ячеек H3 (представленных как STRING), соответствующий минимальному набору шестнадцатеугольников или пентагонов, которые полностью охватывают входную линейную или географию. |
h3_longlatash3(longitudeExpr, latitudeExpr, resolutionExpr) | Возвращает идентификатор ячейки H3 (как BIGINT), соответствующий указанной широте и долготе в указанном разрешении. |
h3_longlatash3string(longitudeExpr, latitudeExpr, resolutionExpr) | Возвращает идентификатор ячейки H3 (в виде шестнадцатеричной строки), соответствующий заданной долготе и широте в указанном разрешении. |
h3_pointash3(geographyExpr, resolutionExpr) | Возвращает идентификатор ячейки H3 (как BIGINT), соответствующий предоставленной точке в указанном разрешении. |
h3_pointash3string(geographyExpr, resolutionExpr) | Возвращает идентификатор ячейки H3 (в виде СТРОКИ), соответствующий предоставленной точке в указанном разрешении. |
h3_polyfillash3(geographyExpr, resolutionExpr) | Возвращает идентификаторы ячеек H3 (представленные как BIGINT), соответствующие шестнадцатеричным или пентагонам, указанного разрешения, которые содержатся входными данными— география. |
h3_polyfillash3string(geographyExpr, resolutionExpr) | Возвращает массив идентификаторов ячеек H3 (представленных как STRING), соответствующих шестнадцатеричным или пентагонам, указанного разрешения, которые содержатся входными данными являются географическими. |
h3_tessellateaswkb(geographyExpr, resolutionExpr) | Возвращает тесселлирование входной географической области с помощью ячеек H3 в указанном разрешении. |
h3_try_polyfillash3(geographyExpr, resolutionExpr) | Возвращает идентификаторы ячеек H3 (представленные как BIGINT), соответствующие шестнадцатеричным или пентагонам, указанного разрешения, которые содержатся входными данными— география. |
h3_try_polyfillash3string(geographyExpr, resolutionExpr) | Возвращает массив идентификаторов ячеек H3 (представленных как STRING), соответствующих шестнадцатеричным или пентагонам, указанного разрешения, которые содержатся входными данными являются географическими. |
Экспорт (Export)
Function | Description |
---|---|
h3_boundaryasgeojson(h3CellIdExpr) | Возвращает многоугольную границу входной ячейки H3 в формате GeoJSON. |
h3_boundaryaswkb(h3CellIdExpr) | Возвращает многоугольную границу входной ячейки H3 в формате WKB. |
h3_boundaryaswkt(h3CellIdExpr) | Возвращает многоугольную границу входной ячейки H3 в формате WKT. |
h3_centerasgeojson(h3CellIdExpr) | Возвращает центр входной ячейки H3 в виде точки в формате GeoJSON. |
h3_centeraswkb(h3CellIdExpr) | Возвращает центр входной ячейки H3 в виде точки в формате WKB. |
h3_centeraswkt(h3CellIdExpr) | Возвращает центр входной ячейки H3 в виде точки в формате WKT. |
Преобразования
Function | Description |
---|---|
h3_h3tostring(h3CellIdExpr) | Преобразует идентификатор входной ячейки H3 в эквивалентное шестнадцатеричное строковое представление. |
h3_stringtoh3(h3CellIdStringExpr) | Преобразует входную строку, которая, как ожидается, будет шестнадцатеричной строкой, представляющей идентификатор ячейки H3, в соответствующее представление BIGINT идентификатора ячейки H3. |
Предикаты
Function | Description |
---|---|
h3_ischildof(h3CellId1Expr, h3CellId2Expr) | Возвращает значение true, если первый идентификатор ячейки H3 равен или дочерний элемент второго идентификатора ячейки H3. |
h3_ispentagon(h3CellIdExpr) | Возвращает значение true, в зависимости от того, соответствует входной объект BIGINT или шестнадцатеричная строка пятиугольной ячейке H3 или нет. |
Срок действия
Function | Description |
---|---|
h3_isvalid(expr) | Возвращает значение true, если входной объект BIGINT или STRING является допустимым идентификатором ячейки H3. |
h3_try_validate(h3CellIdExpr) | Возвращает входное значение типа BIGINT или STRING, если оно соответствует допустимому идентификатору ячейки H3 или NULL в противном случае. |
h3_validate(h3CellIdExpr) | Возвращает входное значение типа BIGINT или STRING, если оно соответствует допустимому идентификатору ячейки H3, в противном случае возвращает ошибку. |
Расстояние, связанное с
Function | Description |
---|---|
h3_distance(h3CellId1Expr, h3CellId2Expr) | Возвращает расстояние сетки двух входных идентификаторов ячеек H3. |
h3_hexring(h3CellIdExpr, kExpr) | Возвращает массив идентификаторов ячеек H3, которые образуют пустое шестнадцатеричное кольцо, центрированное в исходной ячейке H3 и на k расстоянии сетки от исходной ячейки H3. |
h3_kring(h3CellIdExpr, kExpr) | Возвращает идентификаторы ячеек H3, которые находятся в пределах (сетки) от k идентификатора исходной ячейки. |
h3_kringdistances(h3CellIdExpr, kExpr) | Возвращает все идентификаторы ячеек H3 (представленные в виде целых чисел или строк) в пределах расстояния k от идентификатора ячейки H3 источника, а также их расстояние от идентификатора ячейки H3 источника. |
h3_try_distance(h3CellId1Expr, h3CellId2Expr) | Возвращает расстояние сетки двух входных идентификаторов ячеек H3 одного разрешения или NULL, если расстояние не определено. |
Обхода
Function | Description |
---|---|
h3_maxchild(h3CellIdExpr, resolutionExpr) | Возвращает дочерний элемент максимального значения входной ячейки H3 в указанном разрешении. |
h3_minchild(h3CellIdExpr, resolutionExpr) | Возвращает дочерний элемент минимального значения входной ячейки H3 в указанном разрешении. |
h3_resolution(h3CellIdExpr) | Возвращает разрешение входного идентификатора ячейки H3. |
h3_tochildren(h3CellIdExpr, resolutionExpr) | Возвращает массив дочерних идентификаторов ячеек H3 входного идентификатора ячейки H3 по указанному разрешению. |
h3_toparent(h3CellIdExpr, resolutionExpr) | Возвращает родительский идентификатор ячейки H3 входной ячейки H3 по указанному разрешению. |
Сжатие
Function | Description |
---|---|
h3_compact(h3CellIdsExpr) | Сжимает входной набор идентификаторов ячеек H3 как можно лучше. |
h3_uncompact(h3CellIdsExpr, resolutionExpr) | Не компактирует входной набор идентификаторов ячеек H3 к указанному разрешению. |