Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks Runtime 18.2 e versioni successive
Importante
Questa funzionalità è in Anteprima Pubblica.
Restituisce un oggetto Geometry che rappresenta la busta allineata all'asse 2D (rettangolo di selezione minimo) definita dalle due coordinate (x1, y1) dell'angolo e (x2, y2).
Per la funzione SQL di Databricks corrispondente, vedere st_makeenvelope funzione.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_makeenvelope(x1=<x1>, y1=<y1>, x2=<x2>, y2=<y2>)
Parameters
| Parametro | Tipo | Description |
|---|---|---|
x1 |
pyspark.sql.Column o float |
Coordinata X del primo angolo. |
y1 |
pyspark.sql.Column o float |
Coordinata Y del primo angolo. |
x2 |
pyspark.sql.Column o float |
Coordinata X del secondo angolo. |
y2 |
pyspark.sql.Column o float |
Coordinata Y del secondo angolo. |
Returns
pyspark.sql.Column: colonna di valori Geometry che rappresentano la busta allineata all'asse 2D dei due angoli di input. Lo SRID della geometria restituita è 0.
Gli angoli di input possono essere forniti in qualsiasi ordine; la busta risultante è uguale a se gli angoli sono stati normalizzati in (xmin, ymin) e (xmax, ymax).
Il tipo della geometria restituita dipende dagli angoli di input:
- Se la casella viene degenerata in un singolo punto (
x1 = x2ey1 = y2), il risultato è un punto. - Se la casella viene degenerata in un segmento (
x1 = x2oy1 = y2, ma non entrambi), il risultato è una linea con due punti. - In caso contrario, il risultato è un poligono con cinque vertici (anello chiuso).
La funzione restituisce None se uno degli input è None.
Examples
# 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)]