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 LTS och senare
Note
Databricks Runtime 18 är nyare än Databricks Runtime 18.0, 18.1 och 18.2. Funktioner som tidigare skulle ha levererats som en senare numrerad version levereras nu som daterade uppdateringar till Databricks Runtime 18 i stället. Mer information finns i Om enhetliga viktig information.
Important
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Samlar in en matris med geografi - eller geometrivärden i en enda flerpunkts-, multilinestring-, multipolygon- eller geometrisamling.
För motsvarande Databricks SQL-funktion, se st_collect funktion.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_collect(col=<col>)
Parameters
| Parameter | Type | Description |
|---|---|---|
col |
pyspark.sql.Column eller str |
En matris med geografivärden eller en matris med geometrivärden . |
Returns
pyspark.sql.Column: Ett geografi - eller geometrivärde som representerar en flerpunkts-, multilinestring-, multipolygon- eller geometrisamling.
Alla None värden i indatamatrisen ignoreras. Typen av utdata beror på typerna av icke-indatageometrierNone :
- Om alla icke-element
Noneär punkter returnerar en multipunkt. - Om alla icke-element
Noneär linjedragningar returnerar en multilinestring. - Om alla icke-element
Noneär polygoner returnerar en multipolygon. - Annars returnerar en geometrisamling.
Varje utdata innehåller ett element per icke-matriselementNone .
Indata för flera skrivna indata (multipoint, multilinestring, multipolygon) och geometriinsamling bevaras som element i den resulterande geometrisamlingen. de är inte utplattade.
SRID-värdet för utdata är det vanliga SRID-värdet för icke-indatageometrierNone .
Dimensionen för utdata är den maximala gemensamma dimensionen för icke-indatageometrierNone .
Om indatamatrisen är tom eller endast None innehåller värden returneras den tomma 2D-geometrisamlingen. I det här fallet bestäms SRID för utdata enligt följande:
- Om indatamatrisens elementtyp är
GEOGRAPHY(ANY)är4326SRID för utdata . - Om indatamatrisens elementtyp är
GEOMETRY(ANY)är0SRID för utdata . - Annars är SRID för utdata som av indatamatrisens elementtyp.
Om två icke-indatageometrierNone har olika SRID-värden genererar funktionen ett ST_DIFFERENT_SRID_VALUES fel.
Funktionen returnerar None om indata är None.
Examples
Samlar in en matris med punkter i en multipoint.
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))')]
Samlar in en matris med polygoner i en multipolygon.
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)))')]
Samlar in en matris med blandade geometrityper i en geometrisamling.
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))')]
Returnerar den tomma 2D-geometrisamlingen för en tom indatamatris.
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')]
Returnerar None för indata 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)]