This is an automated email from the ASF dual-hosted git repository.

jiayu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sedona.git


The following commit(s) were added to refs/heads/master by this push:
     new 4e8c317781 [GH-2640] Simplify warning messages of 
SedonaContext.create() (#2698)
4e8c317781 is described below

commit 4e8c317781ab20a77eeb9e915fb33eba24c875b7
Author: Jia Yu <[email protected]>
AuthorDate: Mon Mar 9 01:03:15 2026 -0700

    [GH-2640] Simplify warning messages of SedonaContext.create() (#2698)
---
 .../main/scala/org/apache/sedona/sql/RasterRegistrator.scala | 10 +++++++---
 .../sql/sedona_sql/UDT/RasterUdtRegistratorWrapper.scala     |  4 +++-
 .../spark/sql/sedona_sql/UDT/UdtRegistratorWrapper.scala     | 12 +++++++++---
 .../spark/sql/sedona_viz/UDT/UdtRegistratorWrapper.scala     | 12 ++++++++----
 4 files changed, 27 insertions(+), 11 deletions(-)

diff --git 
a/spark/common/src/main/scala/org/apache/sedona/sql/RasterRegistrator.scala 
b/spark/common/src/main/scala/org/apache/sedona/sql/RasterRegistrator.scala
index ee7aa8b0be..c852a3e2b6 100644
--- a/spark/common/src/main/scala/org/apache/sedona/sql/RasterRegistrator.scala
+++ b/spark/common/src/main/scala/org/apache/sedona/sql/RasterRegistrator.scala
@@ -31,9 +31,13 @@ object RasterRegistrator {
   def registerAll(sparkSession: SparkSession): Unit = {
     if (isGeoToolsAvailable) {
       RasterUdtRegistratorWrapper.registerAll(gridClassName)
-      sparkSession.udf.register(
-        RasterUdafCatalog.rasterAggregateExpression.getClass.getSimpleName,
-        functions.udaf(RasterUdafCatalog.rasterAggregateExpression))
+      val functionName = 
RasterUdafCatalog.rasterAggregateExpression.getClass.getSimpleName
+      val functionIdentifier = FunctionIdentifier(functionName)
+      if 
(!sparkSession.sessionState.functionRegistry.functionExists(functionIdentifier))
 {
+        sparkSession.udf.register(
+          functionName,
+          functions.udaf(RasterUdafCatalog.rasterAggregateExpression))
+      }
     }
   }
 
diff --git 
a/spark/common/src/main/scala/org/apache/spark/sql/sedona_sql/UDT/RasterUdtRegistratorWrapper.scala
 
b/spark/common/src/main/scala/org/apache/spark/sql/sedona_sql/UDT/RasterUdtRegistratorWrapper.scala
index 23e5a6a070..9a769f5c0a 100644
--- 
a/spark/common/src/main/scala/org/apache/spark/sql/sedona_sql/UDT/RasterUdtRegistratorWrapper.scala
+++ 
b/spark/common/src/main/scala/org/apache/spark/sql/sedona_sql/UDT/RasterUdtRegistratorWrapper.scala
@@ -23,6 +23,8 @@ import org.apache.spark.sql.types.UDTRegistration
 object RasterUdtRegistratorWrapper {
 
   def registerAll(gridClassName: String): Unit = {
-    UDTRegistration.register(gridClassName, classOf[RasterUDT].getName)
+    if (!UDTRegistration.exists(gridClassName)) {
+      UDTRegistration.register(gridClassName, classOf[RasterUDT].getName)
+    }
   }
 }
diff --git 
a/spark/common/src/main/scala/org/apache/spark/sql/sedona_sql/UDT/UdtRegistratorWrapper.scala
 
b/spark/common/src/main/scala/org/apache/spark/sql/sedona_sql/UDT/UdtRegistratorWrapper.scala
index 2a9b0b397c..9b0179fce6 100644
--- 
a/spark/common/src/main/scala/org/apache/spark/sql/sedona_sql/UDT/UdtRegistratorWrapper.scala
+++ 
b/spark/common/src/main/scala/org/apache/spark/sql/sedona_sql/UDT/UdtRegistratorWrapper.scala
@@ -26,8 +26,14 @@ import org.locationtech.jts.index.SpatialIndex
 object UdtRegistratorWrapper {
 
   def registerAll(): Unit = {
-    UDTRegistration.register(classOf[Geometry].getName, 
classOf[GeometryUDT].getName)
-    UDTRegistration.register(classOf[Geography].getName, 
classOf[GeographyUDT].getName)
-    UDTRegistration.register(classOf[SpatialIndex].getName, 
classOf[IndexUDT].getName)
+    registerIfNotExists(classOf[Geometry].getName, 
classOf[GeometryUDT].getName)
+    registerIfNotExists(classOf[Geography].getName, 
classOf[GeographyUDT].getName)
+    registerIfNotExists(classOf[SpatialIndex].getName, 
classOf[IndexUDT].getName)
+  }
+
+  private def registerIfNotExists(userClass: String, udtClass: String): Unit = 
{
+    if (!UDTRegistration.exists(userClass)) {
+      UDTRegistration.register(userClass, udtClass)
+    }
   }
 }
diff --git 
a/spark/common/src/main/scala/org/apache/spark/sql/sedona_viz/UDT/UdtRegistratorWrapper.scala
 
b/spark/common/src/main/scala/org/apache/spark/sql/sedona_viz/UDT/UdtRegistratorWrapper.scala
index 3f5d952d8d..6c7b9b230d 100644
--- 
a/spark/common/src/main/scala/org/apache/spark/sql/sedona_viz/UDT/UdtRegistratorWrapper.scala
+++ 
b/spark/common/src/main/scala/org/apache/spark/sql/sedona_viz/UDT/UdtRegistratorWrapper.scala
@@ -24,9 +24,13 @@ import org.apache.spark.sql.types.UDTRegistration
 
 object UdtRegistratorWrapper {
   def registerAll(): Unit = {
-    UDTRegistration.register(
-      classOf[ImageSerializableWrapper].getName,
-      classOf[ImageWrapperUDT].getName)
-    UDTRegistration.register(classOf[Pixel].getName, classOf[PixelUDT].getName)
+    if (!UDTRegistration.exists(classOf[ImageSerializableWrapper].getName)) {
+      UDTRegistration.register(
+        classOf[ImageSerializableWrapper].getName,
+        classOf[ImageWrapperUDT].getName)
+    }
+    if (!UDTRegistration.exists(classOf[Pixel].getName)) {
+      UDTRegistration.register(classOf[Pixel].getName, 
classOf[PixelUDT].getName)
+    }
   }
 }

Reply via email to