Partilhar via


st_force2d

Aplica-se a:marcado como sim Databricks Runtime 18.1 e superiores

Importante

Este recurso está no Public Preview.

Devolve a projeção 2D do valor de entrada Geografia ou Geometria .

O valor SRID do valor de Geografia ou Geometria de saída é igual ao valor da entrada.

A função devolve Nenhum se a entrada for Nenhuma.

Para a função SQL do Databricks correspondente, veja st_force2d função.

Sintaxe

from pyspark.databricks.sql import functions as dbf

dbf.st_force2d(col=<col>)

Parâmetros

Parâmetro Tipo Descrição
col pyspark.sql.Column ou str Um valor de Geografia ou Geometria .

Notes

Se a entrada tiver coordenadas Z e/ou M, estas são eliminadas na saída.

Se a entrada já for 2D, é devolvida tal como está.

Exemplos

Elimine a coordenada M de uma geografia pontual:

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POINT M (1 2 3)',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_force2d(dbf.st_geogfromtext('wkt'))).alias('result')).collect()
[Row(result='SRID=4326;POINT(1 2)')]

Retirar as coordenadas Z e M de uma geografia multiponto.

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('MULTIPOINT ZM (EMPTY,0 0 10 20, 1 1 11 21)',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_force2d(dbf.st_geogfromtext('wkt'))).alias('result')).collect()
[Row(result='SRID=4326;MULTIPOINT(EMPTY,(0 0),(1 1))')]

Elimine a coordenada Z de uma geografia poligonal:

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POLYGON Z ((0 0 2,1 0 3,0 1 4,0 0 5))',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_force2d(dbf.st_geogfromtext('wkt'))).alias('result')).collect()
[Row(result='SRID=4326;POLYGON((0 0,1 0,0 1,0 0))')]

Elimine a coordenada Z de uma geometria pontual:

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POINT Z (1 2 3)',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_force2d(dbf.st_geomfromtext('wkt', 4326))).alias('result')).collect()
[Row(result='SRID=4326;POINT(1 2)')]

Eliminar coordenadas Z e M de uma geometria de linha.

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('LINESTRING ZM (0 0 10 20, 1 1 11 21)',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_force2d(dbf.st_geomfromtext('wkt', 4326))).alias('result')).collect()
[Row(result='SRID=4326;LINESTRING(0 0,1 1)')]

Devolve a geometria 2D de entrada tal como está.

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POINT(1 2)',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.st_force2d(dbf.st_geomfromtext('wkt', 4326))).alias('result')).collect()
[Row(result='SRID=4326;POINT(1 2)')]

Preservar o SRID da geografia de entrada:

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POINT(1 2)',)], ['wkt'])
df.select(dbf.st_srid(dbf.st_force2d(dbf.st_geogfromtext('wkt'))).alias('result')).collect()
[Row(result=4326)]

Preservar o SRID da geometria de entrada:

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POINT(1 2)',)], ['wkt'])
df.select(dbf.st_srid(dbf.st_force2d(dbf.st_geomfromtext('wkt', 4326))).alias('result')).collect()
[Row(result=4326)]

Retorne None com uma entrada de None:

from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(None,)], ['wkt'])
df.select(dbf.st_force2d(dbf.st_geogfromtext('wkt')).alias('result')).collect()
[Row(result=None)]