Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks Runtime 18 LTS e superior
Observação
O Databricks Runtime 18 é mais recente que o Databricks Runtime 18.0, 18.1 e 18.2. Os recursos que anteriormente teriam sido enviados como uma versão numerada posterior agora são fornecidos como atualizações datadas para o Databricks Runtime 18. Para obter detalhes, consulte Sobre notas de versão unificadas.
Importante
Esse recurso está em Visualização Pública.
Coleta uma matriz de valores geography ou geometry em uma única coleção de vários pontos, multilinha, multipolígono ou geometria.
Para a função SQL do Databricks correspondente, consulte a função st_collect.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.st_collect(col=<col>)
Parameters
| Parâmetro | Tipo | Descrição |
|---|---|---|
col |
pyspark.sql.Column ou str |
Uma matriz de valores geography ou uma matriz de valores geometry . |
Returns
pyspark.sql.Column: um valor geography ou geometry , representando uma coleção multipoint, multilinestring, multipolygon ou geometry.
Todos None os valores na matriz de entrada são ignorados. O tipo da saída depende dos tipos das geometrias que não são deNone entrada:
- Se todos os não
Noneelementos forem pontos, retornará um multiponto. - Se todos os não
Noneelementos forem linestrings, retornará uma multilinha. - Se todos os não
Noneelementos forem polígonos, retornará um multipolígono. - Caso contrário, retorna uma coleção de geometria.
Cada saída contém um elemento por elemento não matrizNone .
Entradas de vários tipos (multipoint, multilinestring, multipolygon) e entradas da coleção geometry são preservadas como elementos da coleção de geometria resultante; eles 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 que não são deNone entrada.
Se a matriz de entrada estiver vazia ou contiver apenas None valores, a coleção de geometria vazia 2D será retornada. Nesse caso, o SRID da saída é determinado da seguinte maneira:
- Se o tipo de elemento da matriz de entrada for
GEOGRAPHY(ANY), o SRID da saída será4326. - Se o tipo de elemento da matriz de entrada for
GEOMETRY(ANY), o SRID da saída será0. - Caso contrário, o SRID da saída é o tipo de elemento da matriz de entrada.
Se duas geometrias não deNone entrada tiverem valores SRID diferentes, a função gerará um erro ST_DIFFERENT_SRID_VALUES .
A função retorna None se a entrada for None.
Exemplos
Coleta uma matriz de pontos em um 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))')]
Coleta uma matriz de polígonos em um 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)))')]
Coleta uma matriz de tipos de geometria misturada em uma 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))')]
Retorna a coleção de geometria vazia 2D para uma matriz de entrada vazia.
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)]