Skip to main content

try_to_geometry

Preview

This feature is in Public Preview.

Parses the input BINARY or string value and returns the corresponding Geometry value. None is returned if the input is invalid.

For the corresponding Databricks SQL function, see try_to_geometry function.

Syntax

Python
from pyspark.databricks.sql import functions as dbf

dbf.try_to_geometry(col=<col>)

Parameters

Parameter

Type

Description

col

pyspark.sql.Column or str

A string value in WKT or GeoJSON format, or a BINARY value in WKB or EWKB format representing a Geometry value.

Examples

Python
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('POINT Z (3 4 5)',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.try_to_geometry('wkt')).alias('result')).collect()
Output
[Row(result='POINT Z (3 4 5)')]
Python
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('{"type":"MultiPoint","coordinates":[[3,4,5]]}',)], ['geojson'])
df.select(dbf.st_asewkt(dbf.try_to_geometry('geojson')).alias('result')).collect()
Output
[Row(result='SRID=4326;MULTIPOINT Z ((3 4 5))')]
Python
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(bytes.fromhex('01ef0300000100000001e9030000000000000000084000000000000010400000000000001440'),)], ['wkb'])
df.select(dbf.st_asewkt(dbf.try_to_geometry('wkb')).alias('result')).collect()
Output
[Row(result='GEOMETRYCOLLECTION Z (POINT Z (3 4 5))')]
Python
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(bytes.fromhex('01020000a0110f000002000000000000000000084000000000000010400000000000001440000000000000084000000000000010400000000000001440'),)], ['ewkb'])
df.select(dbf.st_asewkt(dbf.try_to_geometry('ewkb')).alias('result')).collect()
Output
[Row(result='SRID=3857;LINESTRING Z (3 4 5,3 4 5)')]
Python
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('invalid wkt',)], ['wkt'])
df.select(dbf.st_asewkt(dbf.try_to_geometry('wkt')).alias('result')).collect()
Output
[Row(result=None)]