st_collect

적용 대상:예 Databricks Runtime 18 LTS 이상으로 표시된 확인

메모

Databricks Runtime 18은 Databricks Runtime 18.0, 18.1 및 18.2보다 최신입니다. 이전에 번호가 매겨진 버전으로 제공되었던 기능은 이제 Databricks Runtime 18에 대한 날짜가 지정된 업데이트로 제공됩니다. 자세한 내용은 통합 릴리스 정보 정보를 참조하세요.

지리 또는 기하 도형 값의 배열을 단일 다중점, 다중 줄 바꿈, 다각형 또는 기하 도형 컬렉션으로 수집합니다.

해당 Databricks SQL 함수에 대해 알아보려면 st_collect 함수를 참조하세요.

Syntax

from pyspark.databricks.sql import functions as dbf

dbf.st_collect(col=<col>)

매개 변수

매개 변수 유형 Description
col pyspark.sql.Column 또는 str Geography 값의 배열 또는 기하 도형 값의 배열입니다.

Returns

pyspark.sql.Column: 다중점, 다중 줄 바꿈, 다각형 또는 기하 도형 컬렉션을 나타내는 지리 또는 기하 도형 값입니다.

입력 배열의 모든 None 값은 무시됩니다. 출력 형식은 입력이 아닌None 기하 도형의 형식에 따라 달라집니다.

  • 요소가 아닌 모든None 요소가 점인 경우 다중 지점을 반환합니다.
  • 모든 비-None 요소가 줄 바꿈인 경우 다중 줄 문자열을 반환합니다.
  • 모든 비 요소가None 다각형인 경우 다각형을 반환합니다.
  • 그렇지 않으면 기하 도형 컬렉션을 반환합니다.

각 출력에는 배열이 아닌None 요소당 하나의 요소가 포함됩니다.

다중 형식 입력(다중점, 다중 줄 바꿈, 다각형) 및 기하 도형 컬렉션 입력은 결과 기하 도형 컬렉션의 요소로 유지됩니다. 평면화되지 않습니다.

출력의 SRID 값은 입력이 아닌None 기하 도형의 일반적인 SRID 값입니다.

출력의 차원은 입력이 아닌None 기하 도형의 최대 공통 차원입니다.

입력 배열이 비어 있거나 값만 None 포함된 경우 2D 빈 기하 도형 컬렉션이 반환됩니다. 이 경우 출력의 SRID는 다음과 같이 결정됩니다.

  • 입력 배열의 요소 형식이 GEOGRAPHY(ANY)면 출력의 SRID입니다 4326.
  • 입력 배열의 요소 형식이 GEOMETRY(ANY)면 출력의 SRID입니다 0.
  • 그렇지 않으면 출력의 SRID는 입력 배열의 요소 형식입니다.

입력이 아닌None 두 기하 도형이 서로 다른 SRID 값을 갖는 경우 함수는 ST_DIFFERENT_SRID_VALUES 오류를 발생합니다.

입력이 None인 경우 함수는 None를 반환합니다.

예제

여러 지점으로 점 배열을 수집합니다.

from pyspark.databricks.sql import functions as dbf
from pyspark.sql import functions as sf
df = spark.createDataFrame([('POINT(1 2)', 'POINT(3 4)')], ['wkt1', 'wkt2'])
df.select(dbf.st_astext(dbf.st_collect(sf.array(dbf.st_geomfromtext('wkt1'), dbf.st_geomfromtext('wkt2')))).alias('result')).collect()
[Row(result='MULTIPOINT((1 2),(3 4))')]

다각형 배열을 다각형으로 수집합니다.

from pyspark.databricks.sql import functions as dbf
from pyspark.sql import functions as sf
df = spark.createDataFrame([('POLYGON((0 0,10 0,10 10,0 10,0 0))',)], ['wkt'])
df.select(dbf.st_astext(dbf.st_collect(sf.array(dbf.st_geomfromtext('wkt')))).alias('result')).collect()
[Row(result='MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))')]

혼합 기하 도형 종류의 배열을 기하 도형 컬렉션으로 수집합니다.

from pyspark.databricks.sql import functions as dbf
from pyspark.sql import functions as sf
df = spark.createDataFrame([('POLYGON((0 0,10 0,10 10,0 10,0 0))', 'LINESTRING(1 2,3 4)')], ['wkt1', 'wkt2'])
df.select(dbf.st_astext(dbf.st_collect(sf.array(dbf.st_geomfromtext('wkt1'), dbf.st_geomfromtext('wkt2')))).alias('result')).collect()
[Row(result='GEOMETRYCOLLECTION(POLYGON((0 0,10 0,10 10,0 10,0 0)),LINESTRING(1 2,3 4))')]

빈 입력 배열에 대한 2D 빈 기하 도형 컬렉션을 반환합니다.

from pyspark.databricks.sql import functions as dbf
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(dbf.st_astext(dbf.st_collect(sf.array())).alias('result')).collect()
[Row(result='GEOMETRYCOLLECTION EMPTY')]

None 입력을 반환합니다None.

from pyspark.databricks.sql import functions as dbf
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(dbf.st_collect(sf.lit(None)).alias('result')).collect()
[Row(result=None)]