Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks Runtime 18.2 und höher
Important
Dieses Feature befindet sich in der Public Preview.
Gibt eine Geometrie zurück, die den 2D-Achsenausrichtungsumschlag (Minimale Begrenzungsfeld) darstellt, der durch die beiden Eckkoordinaten (x1, y1) und .(x2, y2)
Die entsprechende Databricks SQL-Funktion finden Sie unter st_makeenvelope Funktion.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_makeenvelope(x1=<x1>, y1=<y1>, x2=<x2>, y2=<y2>)
Parameters
| Parameter | Typ | Description |
|---|---|---|
x1 |
pyspark.sql.Column oder float |
Die X-Koordinate der ersten Ecke. |
y1 |
pyspark.sql.Column oder float |
Die Y-Koordinate der ersten Ecke. |
x2 |
pyspark.sql.Column oder float |
Die X-Koordinate der zweiten Ecke. |
y2 |
pyspark.sql.Column oder float |
Die Y-Koordinate der zweiten Ecke. |
Rückkehr
pyspark.sql.Column: Eine Spalte mit Geometriewerten , die den 2D-Achsenausrichtungsumschlag der beiden Eingabeecke darstellen. Die SRID der zurückgegebenen Geometrie ist 0.
Die Eingabeecke können in beliebiger Reihenfolge bereitgestellt werden; Der resultierende Umschlag entspricht dem, wenn die Ecken normalisiert (xmin, ymin) wurden und (xmax, ymax).
Der Typ der zurückgegebenen Geometrie hängt von den Eingabeecke ab:
- Wenn das Feld zu einem einzelnen Punkt (
x1 = x2undy1 = y2), ist das Ergebnis ein Punkt. - Wenn das Feld zu einem Segment (
x1 = x2odery1 = y2, aber nicht beide) abweicht, ist das Ergebnis eine Linienzeichenfolge mit zwei Punkten. - Andernfalls ist das Ergebnis ein Polygon mit fünf Scheitelpunkten (geschlossener Ring).
Die Funktion gibt zurück None , wenn eine der Eingaben lautet None.
Beispiele
# 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)]