Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks Runtime 18.2 y versiones posteriores
Important
Esta característica está en versión preliminar pública.
Devuelve una geometría que representa el sobre alineado con el eje 2D (cuadro de límite mínimo) definido por las dos coordenadas (x1, y1) de esquina y (x2, y2).
Para obtener la función SQL de Databricks correspondiente, consulte st_makeenvelope function.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_makeenvelope(x1=<x1>, y1=<y1>, x2=<x2>, y2=<y2>)
Parameters
| Parámetro | Tipo | Description |
|---|---|---|
x1 |
pyspark.sql.Column o flotante |
Coordenada X de la primera esquina. |
y1 |
pyspark.sql.Column o flotante |
Coordenada Y de la primera esquina. |
x2 |
pyspark.sql.Column o flotante |
Coordenada X de la segunda esquina. |
y2 |
pyspark.sql.Column o flotante |
Coordenada Y de la segunda esquina. |
Devoluciones
pyspark.sql.Column: una columna de valores geometry que representa el sobre alineado con el eje 2D de las dos esquinas de entrada. El SRID de la geometría devuelta es 0.
Las esquinas de entrada se pueden proporcionar en cualquier orden; el sobre resultante es el mismo que si las esquinas se normalizaran en (xmin, ymin) y (xmax, ymax).
El tipo de geometría devuelta depende de las esquinas de entrada:
- Si el cuadro se degenera en un único punto (
x1 = x2yy1 = y2), el resultado es un punto. - Si el cuadro se degenera en un segmento (
x1 = x2oy1 = y2, pero no ambos), el resultado es una cadena de líneas con dos puntos. - De lo contrario, el resultado es un polígono con cinco vértices (anillo cerrado).
La función devuelve None si alguna de las entradas es None.
Ejemplos
# 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)]