st_collect

Dotyczy:sprawdzanie oznaczone jako tak Databricks Runtime 18 LTS i nowszych

Note

Środowisko Databricks Runtime 18 jest nowsze niż środowisko Databricks Runtime 18.0, 18.1 i 18.2. Funkcje, które wcześniej były dostarczane jako nowsza numerowana wersja, są teraz dostarczane jako daty aktualizacji środowiska Databricks Runtime 18 zamiast. Aby uzyskać szczegółowe informacje, zobacz Informacje o ujednoliconej wersji.

Important

Ta funkcja jest dostępna w publicznej wersji testowej.

Zbiera tablicę wartości Geography lub Geometry w jednym wielopunktowym, wieloliniowym, wieloliniowym, wielobiegunowym lub kolekcji geometrycznej.

Aby uzyskać odpowiednią funkcję SQL usługi Databricks, zobacz st_collect funkcja.

Syntax

from pyspark.databricks.sql import functions as dbf

dbf.st_collect(col=<col>)

Parameters

Parameter Typ Description
col pyspark.sql.Column lub str Tablica wartości Geography lub tablica wartości Geometry .

Zwroty

pyspark.sql.Column: Wartość Geography lub Geometry reprezentująca wielopunktowe, wielowierszowe, wielobiegunowe lub kolekcje geometryczne.

Wszystkie None wartości w tablicy wejściowej są ignorowane. Typ danych wyjściowych zależy od typów geometrii niezwiązanychNone z danymi wejściowymi:

  • Jeśli wszystkie elementy inne niżNone elementy są punktami, zwraca wielopunkt.
  • Jeśli wszystkie elementy inneNone niż elementy są ciągami liniowymi, zwraca wielowierszowy ciąg.
  • Jeśli wszystkie elementy inne niż sąNone wielokątami, zwraca wielopolygon.
  • W przeciwnym razie zwraca kolekcję geometrii.

Każde dane wyjściowe zawiera jeden element na element inny niżNone tablica.

Dane wejściowe wieloznaczne (multipoint, multilinestring, multipolygon) i dane wejściowe kolekcji geometrycznej są zachowywane jako elementy wynikowej kolekcji geometrycznej; nie są spłaszczone.

Wartość SRID danych wyjściowych jest wspólną wartością SRID geometrii nie-wejściowychNone .

Wymiar danych wyjściowych jest maksymalnym wspólnym wymiarem geometrii niezwiązanychNone z danymi wejściowymi.

Jeśli tablica wejściowa jest pusta lub zawiera tylko None wartości, zwracana jest pusta kolekcja geometrii 2D. W takim przypadku identyfikator SRID danych wyjściowych jest określany w następujący sposób:

  • Jeśli typem elementu tablicy wejściowej jest GEOGRAPHY(ANY), identyfikator SRID danych wyjściowych to 4326.
  • Jeśli typem elementu tablicy wejściowej jest GEOMETRY(ANY), identyfikator SRID danych wyjściowych to 0.
  • W przeciwnym razie identyfikator SRID danych wyjściowych jest typem elementu tablicy wejściowej.

Jeśli jakiekolwiek dwie geometrie niezwiązaneNone z danymi wejściowymi mają różne wartości SRID, funkcja zgłasza błąd ST_DIFFERENT_SRID_VALUES .

Funkcja zwraca None, jeśli dane wejściowe to None.

Examples

Zbiera tablicę punktów w wielu punktach.

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))')]

Zbiera tablicę wielokątów w wielopolygon.

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)))')]

Zbiera tablicę mieszanych rodzajów geometrii w kolekcji geometrycznej.

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))')]

Zwraca pustą kolekcję geometrii 2D dla pustej tablicy wejściowej.

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')]

Zwraca None dane wejściowe 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)]