Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:
Databricks Runtime 18.2 и выше
Возвращает геометрию , представляющую выровненный по оси 2D конверт (минимальное ограничивающее поле), определенный двумя угловых координатами (x1, y1) и (x2, y2).
Для соответствующей функции Databricks SQL смотрите функцию st_makeenvelope.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_makeenvelope(x1=<x1>, y1=<y1>, x2=<x2>, y2=<y2>)
Parameters
| Parameter | Тип | Description |
|---|---|---|
x1 |
pyspark.sql.Column или с плавающей запятой |
Координата X первого угла. |
y1 |
pyspark.sql.Column или с плавающей запятой |
Координата Y первого угла. |
x2 |
pyspark.sql.Column или с плавающей запятой |
Координата X второго угла. |
y2 |
pyspark.sql.Column или с плавающей запятой |
Координата Y второго угла. |
Returns
pyspark.sql.Column: столбец геометрических значений, представляющий выровненный по оси 2D конверт двух входных углов. Значение SRID возвращаемой геометрии равно 0.
Входные угла могут быть предоставлены в любом порядке; Результирующий конверт совпадает с тем же, что и если бы угловы были нормализованы и (xmin, ymin)(xmax, ymax).
Тип возвращаемой геометрии зависит от входных углов:
- Если поле дегенерирует до одной точки (
x1 = x2иy1 = y2), результатом является точка. - Если поле дегенерирует на сегмент (
x1 = x2илиy1 = y2, но не оба), результатом является строка с двумя точками. - В противном случае результатом является многоугольник с пятью вершинами (закрытым кольцом).
Функция возвращает None, если какие-либо из входных данных None.
Примеры
# Returns the polygon envelope defined by two corners.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1.0, 2.0, 4.0, 6.0)], ['x1', 'y1', 'x2', 'y2'])
df.select(dbf.st_astext(dbf.st_makeenvelope('x1', 'y1', 'x2', 'y2')).alias('result')).collect()
[Row(result='POLYGON((1 2,1 6,4 6,4 2,1 2))')]
# Corners may be provided in any order.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(4.0, 6.0, 1.0, 2.0)], ['x1', 'y1', 'x2', 'y2'])
df.select(dbf.st_astext(dbf.st_makeenvelope('x1', 'y1', 'x2', 'y2')).alias('result')).collect()
[Row(result='POLYGON((1 2,1 6,4 6,4 2,1 2))')]
# Returns a point when the box degenerates to a point.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(3.0, 5.0, 3.0, 5.0)], ['x1', 'y1', 'x2', 'y2'])
df.select(dbf.st_astext(dbf.st_makeenvelope('x1', 'y1', 'x2', 'y2')).alias('result')).collect()
[Row(result='POINT(3 5)')]
# Returns a linestring when the box degenerates to a horizontal segment.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1.0, 0.0, 4.0, 0.0)], ['x1', 'y1', 'x2', 'y2'])
df.select(dbf.st_astext(dbf.st_makeenvelope('x1', 'y1', 'x2', 'y2')).alias('result')).collect()
[Row(result='LINESTRING(1 0,4 0)')]
# Returns a linestring when the box degenerates to a vertical segment.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(0.0, 2.0, 0.0, 7.0)], ['x1', 'y1', 'x2', 'y2'])
df.select(dbf.st_astext(dbf.st_makeenvelope('x1', 'y1', 'x2', 'y2')).alias('result')).collect()
[Row(result='LINESTRING(0 2,0 7)')]
# The SRID of the returned geometry is always 0.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(0.0, 0.0, 10.0, 10.0)], ['x1', 'y1', 'x2', 'y2'])
df.select(dbf.st_srid(dbf.st_makeenvelope('x1', 'y1', 'x2', 'y2')).alias('result')).collect()
[Row(result=0)]