Hi,

I am giving a try to sedona SQL spatial functions in Scala in a databricks 7.3 
environment (Spark 3.0.1, Scala 2.12) using the following libraries:
org.apache.sedona:sedona-core-3.0_2.12:1.0.1-incubating
org.apache.sedona:sedona-sql-3.0_2.12:1.0.1-incubating
org.apache.sedona:sedona-python-adapter-3.0_2.12:1.0.1-incubating
org.apache.sedona:sedona-viz-3.0_2.12:1.0.1-incubating

After session initialization,

val session = SparkSession.builder().
      config("spark.serializer","org.apache.spark.serializer.KryoSerializer").
      config("spark.kryo.registrator", 
"org.apache.sedona.core.serde.SedonaKryoRegistrator").
      master("local[*]").appName("test").getOrCreate()
SedonaSQLRegistrator.registerAll(session)

if I execute something like this in an spark static table, everything runs fine:

spark.sql("""
  SELECT
  p.*,
   ST_GeomFromGeoJSON(p.geometry) as geom
  FROM geometries p
  WHERE ...)

But if I execute any ST_* function on a spark streaming table I am always 
getting the following exception:

Caused by: org.apache.spark.SparkException: Job aborted due to stage failure: 
Task 0 in stage 88.0 failed 4 times, most recent failure: Lost task 0.3 in 
stage 88.0 (TID 5914) (10.139.64.9 executor 9): 
org.apache.spark.SparkException: org.locationtech.jts.geom.Geometry is not 
annotated with SQLUserDefinedType nor registered with UDTRegistration.} at 
org.apache.spark.sql.catalyst.encoders.RowEncoder$.$anonfun$serializerFor$1(RowEncoder.scala:88)
 at scala.Option.getOrElse(Option.scala:189) at 
org.apache.spark.sql.catalyst.encoders.RowEncoder$.serializerFor(RowEncoder.scala:87)
 at 
org.apache.spark.sql.catalyst.encoders.RowEncoder$.$anonfun$serializerFor$3(RowEncoder.scala:176)
 at 
scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:245) 
at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:36)

 I have very little experience using sedona so I assume I am doing something 
wrong. 
Any ideas on what clould be happening? 
Do I really need to register org.locationtech.jts.geom.Geometry?

Thanks in advance,
Pablo

Reply via email to