적용 대상:예 Databricks Runtime 18 LTS 이상으로 ![]()
메모
Databricks Runtime 18은 Databricks Runtime 18.0, 18.1 및 18.2보다 최신입니다. 이전에 번호가 매겨진 버전으로 제공되었던 기능은 이제 Databricks Runtime 18에 대한 날짜가 지정된 업데이트로 제공됩니다. 자세한 내용은 통합 릴리스 정보 정보를 참조하세요.
Important
이 기능은 공개 미리보기 단계에 있습니다.
입력 기하 도형 값에 있거나 내부에 놓이도록 보장되는 점을 반환합니다.
해당 Databricks SQL 함수에 대해 알아보려면 st_pointonsurface 함수를 참조하세요.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_pointonsurface(col=<col>)
매개 변수
| 매개 변수 | 유형 | Description |
|---|---|---|
col |
pyspark.sql.Column 또는 str |
기하 값입니다. |
Returns
pyspark.sql.Column: 2D 점 기하 도형 값의 열로, 각각 해당 입력 기하 도형에 있거나 내부에 배치됩니다. 더 정확하게 말하면:
- 입력 기하 도형이 비어 있으면 2D 빈 점이 반환됩니다.
- 입력 기하 도형이 비어있지 않은 점이면 점의 2D 프로젝션이 반환됩니다.
- 입력 기하 도형이 비어 있는 줄 바꿈이 아니면 중앙값 꼭짓점이 반환됩니다.
- 입력 기하 도형이 비어있지 않은 다각형이면 가능하면 다각형 내부 지점이 반환됩니다. 그렇지 않으면 경계의 한 지점입니다.
- 입력 기하 도형이 다중 지점이면 경계 상자 가운데에 가장 가까운 비어있지 않은 점이 반환됩니다.
- 입력 기하 도형이 다중 줄 바꿈이면 길이가 가장 큰 줄 바꿈 표면의 점이 반환됩니다.
- 입력 기하 도형이 다각형이면 다각형 표면에서 가장 큰 영역이 있는 점이 반환됩니다.
- 입력 기하 도형이 기하 도형 컬렉션인 경우 컬렉션의 최대 차원 요소 중 하나의 표면에 있는 점이 반환됩니다.
반환된 기하 도형의 SRID는 입력 기하 도형의 SRID와 동일합니다.
입력이 None인 경우 함수는 None를 반환합니다.
예시
# Returns a point inside a 2D polygon.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POLYGON((0 0,10 0,10 10,0 10,0 0))',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_pointonsurface(dbf.st_geomfromtext('wkt'))).alias('result')).collect()
[Row(result='POINT(5 5)')]
# For a polygon with a hole, the result lies in the donut region.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POLYGON((0 0,30 0,30 30,0 30,0 0),(5 5,25 5,25 25,5 25,5 5))',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_pointonsurface(dbf.st_geomfromtext('wkt'))).alias('result')).collect()
[Row(result='POINT(3.75 3.75)')]
# For a 3DZ linestring, the median vertex is returned and the Z coordinate is dropped.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('LINESTRING Z (1 2 -1,3 4 -2,5 6 -3)',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_pointonsurface(dbf.st_geomfromtext('wkt'))).alias('result')).collect()
[Row(result='POINT(3 4)')]
# For a multipolygon, a point on the polygon with the largest area is returned.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((100 100,101 100,101 101,100 101,100 100)))',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_pointonsurface(dbf.st_geomfromtext('wkt'))).alias('result')).collect()
[Row(result='POINT(5 5)')]
# The SRID of the input geometry is preserved.
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POLYGON((0 0,10 0,10 10,0 10,0 0))',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_pointonsurface(dbf.st_geomfromtext('wkt', 3857))).alias('result')).collect()
[Row(result='SRID=3857;POINT(5 5)')]