diff --git a/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/udf/KDFRegistry.scala b/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/udf/KDFRegistry.scala index 537a77117..11900f77a 100644 --- a/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/udf/KDFRegistry.scala +++ b/externals/kyuubi-spark-sql-engine/src/main/scala/org/apache/kyuubi/engine/spark/udf/KDFRegistry.scala @@ -19,6 +19,7 @@ package org.apache.kyuubi.engine.spark.udf import scala.collection.mutable.ArrayBuffer +import org.apache.spark.SparkEnv import org.apache.spark.sql.SparkSession import org.apache.spark.sql.expressions.UserDefinedFunction import org.apache.spark.sql.functions.udf @@ -27,9 +28,10 @@ import org.apache.kyuubi.KYUUBI_VERSION object KDFRegistry { + @transient val registeredFunctions = new ArrayBuffer[KyuubiDefinedFunction]() - val appName = SparkSession.active.sparkContext.appName + val appName = SparkEnv.get.conf.get("spark.app.name") val kyuubi_version: KyuubiDefinedFunction = create( "kyuubi_version", diff --git a/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationYarnClusterSuite.scala b/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationYarnClusterSuite.scala index 122a3dbfa..734406e0f 100644 --- a/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationYarnClusterSuite.scala +++ b/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationYarnClusterSuite.scala @@ -42,4 +42,12 @@ class KyuubiOperationYarnClusterSuite extends WithKyuubiServerOnYarn with JDBCTe assert(resultSet.getString("id").startsWith("application_")) } } + + test("KYUUBI #1263: Kyuubi auxiliary UDF failed on Spark Yarn mode") { + withJdbcStatement() { statement => + val resultSet = statement.executeQuery("""SELECT kyuubi_version() as id""") + assert(resultSet.next()) + assert(resultSet.getString("id") === org.apache.kyuubi.KYUUBI_VERSION) + } + } }