Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks Runtime 18.2 och senare
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Returnerar en geometri som representerar det 2D-axeljusterade kuvertet (minsta avgränsningsruta) som definieras av de två hörnkoordinaterna (x1, y1) och (x2, y2).
För motsvarande Databricks SQL-funktion, se 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 | Type | Description |
|---|---|---|
x1 |
pyspark.sql.Column eller flyttal |
X-koordinaten för det första hörnet. |
y1 |
pyspark.sql.Column eller flyttal |
Y-koordinaten för det första hörnet. |
x2 |
pyspark.sql.Column eller flyttal |
X-koordinaten för det andra hörnet. |
y2 |
pyspark.sql.Column eller flyttal |
Y-koordinaten för det andra hörnet. |
Returns
pyspark.sql.Column: En kolumn med geometrivärden som representerar det 2D-axeljusterade kuvertet för de två indatahörnerna. SRID för den returnerade geometrin är 0.
Indatahörn kan tillhandahållas i valfri ordning. det resulterande kuvertet är detsamma som om hörnen normaliserades till (xmin, ymin) och (xmax, ymax).
Vilken typ av returnerad geometri som returneras beror på indatahörn:
- Om rutan degenereras till en enda punkt (
x1 = x2ochy1 = y2) är resultatet en punkt. - Om rutan degenereras till ett segment (
x1 = x2ellery1 = y2, men inte båda), blir resultatet en linje med två punkter. - Annars blir resultatet en polygon med fem hörn (stängd ring).
Funktionen returnerar None om någon av indata är None.
Exempel
# 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)]