Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks Runtime 18 LTS e superiores
Note
O Databricks Runtime 18 é mais recente do que o Databricks Runtime 18.0, 18.1 e 18.2. Funcionalidades que anteriormente seriam enviadas como versões numeradas posteriores agora são enviadas como atualizações datadas do Databricks Runtime 18. Para mais detalhes, consulte Sobre as notas de lançamento unificadas.
Recolhe um array de valores de Geografia ou Geometria numa única coleção multiponto, multilinha, multipolígono ou de geometria.
Para a função SQL do Databricks correspondente, veja st_collect função.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_collect(col=<col>)
Parameters
| Parâmetro | Tipo | Description |
|---|---|---|
col |
pyspark.sql.Column ou str |
Um array de valores de Geografia , ou um array de valores de Geometria . |
Devoluções
pyspark.sql.Column: Um valor de Geografia ou Geometria , representando uma coleção de multiponto, multilinha, multipolígono ou geometria.
Todos os None valores na matriz de entrada são ignorados. O tipo da saída depende dos tipos das geometrias não deNone entrada:
- Se todos os não-elementos
Noneforem pontos, retorna um multiponto. - Se todos os não-elementos
Noneforem strings de linha, devolve uma stringa multilinha. - Se todos os não-elementos
Noneforem polígonos, retorna um multipolígono. - Caso contrário, devolve uma coleção de geometria.
Cada saída contém um elemento por elemento que não seja doNone array.
Entradas multi-tipadas (multiponto, multilinha, multipolígono) e entradas de coleção de geometria são preservadas como elementos da coleção de geometria resultante; não são achatados.
O valor SRID da saída é o valor SRID comum das geometrias não deNone entrada.
A dimensão da saída é a dimensão máxima comum das geometrias nãoNone de entrada.
Se o array de entrada estiver vazio ou contiver apenas None valores, a coleção de geometria 2D vazia é devolvida. Neste caso, o SRID da saída é determinado da seguinte forma:
- Se o tipo de elemento do array de entrada for
GEOGRAPHY(ANY), o SRID da saída é4326. - Se o tipo de elemento do array de entrada for
GEOMETRY(ANY), o SRID da saída é0. - Caso contrário, o SRID da saída corresponde ao tipo de elemento do array de entrada.
Se quaisquer duas geometrias não deNone entrada tiverem valores SRID diferentes, a função gera um erro de ST_DIFFERENT_SRID_VALUES .
A função retorna None se a entrada for None.
Examples
Recolhe uma matriz de pontos num multiponto.
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))')]
Recolhe um array de polígonos num multipolígono.
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)))')]
Recolhe um array de tipos mistos de geometria numa coleção de geometria.
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))')]
Devolve a coleção de geometria 2D vazia para um array de entrada vazio.
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')]
Retorna None para uma None entrada.
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)]