Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: 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. Операция OPTIMIZE Delta Lake с Z-упорядочиванием (на идентификаторах ячеек H3) позволяет пространственно сорасполагать данные. Кроме того, алгоритмы пропускания данных Delta Lake используют когерентное расположение для эффективного уменьшения объема данных, которые необходимо считывать.
У вас есть гибкость в работе с данными. Вы можете работать с идентификаторами ячеек H3, хранящимися в виде больших целых чисел или строк. Для оптимальной производительности с помощью идентификаторов ячеек H3 используйте большое целочисленное представление. Подробные сведения об использовании выражений H3 см. в руководстве по SQL.
Примечание.
Не нужно устанавливать библиотеку H3. Она включается в качестве видимой зависимости в Databricks Runtime, начиная с Databricks Runtime 11.2, используя версию 3.7.0 библиотеки Java H3.
Импорт функций Databricks для получения H3 (Databricks Runtime)
Импорт не требуется для 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)
Импорт
Функция | Описание |
---|---|
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_coverash3(geographyExpr, resolutionExpr) | Возвращает массив идентификаторов ячеек H3 (представленных как BIGINT), соответствующий минимальному набору шестиугольников или пентагонов заданного разрешения, которые полностью покрывают входную линейную или ареальную географию, или NULL, если первый аргумент недопустим. |
h3_try_coverash3string(geographyExpr, resolutionExpr) | Возвращает массив идентификаторов ячеек H3 (представленных как STRING), соответствующий минимальному набору шестнадцатеугольников или пентагонов, заданного разрешения, который полностью охватывает входную линейную или географию или значение NULL, если первый аргумент недопустим. |
h3_try_polyfillash3(geographyExpr, resolutionExpr) | Возвращает МАССИВ идентификаторов ячеек H3 (представленных как BIGINT), соответствующих шестиугольникам или пятиугольникам указанного разрешения, которые содержатся во входной географией. |
h3_try_polyfillash3string(geographyExpr, resolutionExpr) | Возвращает массив идентификаторов ячеек H3 (представленных как STRING), соответствующих шестиугольникам или пятиугольникам указанного разрешения, которые содержатся в указанной входными данными географической области. |
h3_try_tessellateaswkb(geographyExpr, resolutionExpr) | Возвращает тесселяцию входной географии с помощью ячеек H3 в указанном разрешении или результат NULL, если первый аргумент недопустим или функция не смогла вычислить тесселяцию. |
Экспорт (Export)
Функция | Описание |
---|---|
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. |
Преобразования
Функция | Описание |
---|---|
h3_h3tostring(h3CellIdExpr) | Преобразует идентификатор входной ячейки H3 в эквивалентное шестнадцатеричное строковое представление. |
h3_stringtoh3(h3CellIdStringExpr) | Преобразует входную строку, которая, как ожидается, будет шестнадцатеричной строкой, представляющей идентификатор ячейки H3, в соответствующее представление BIGINT идентификатора ячейки H3. |
Предикаты
Функция | Описание |
---|---|
h3_ischildof(h3CellId1Expr, h3CellId2Expr) | Возвращает значение true, если первый идентификатор ячейки 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 | Описание |
---|---|
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, если расстояние не определено. |
Обхода
Функция | Описание |
---|---|
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 | Описание |
---|---|
h3_compact(h3CellIdsExpr) | Сжимает входной набор идентификаторов ячеек H3 максимально эффективно. |
h3_uncompact(h3CellIdsExpr, resolutionExpr) | Не компактирует входной набор идентификаторов ячеек H3 к указанному разрешению. |