[ https://issues.apache.org/jira/browse/SPARK-44311?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Herman van Hövell resolved SPARK-44311. --------------------------------------- Fix Version/s: 3.5.0 Resolution: Fixed > UDF should support function taking value classes > ------------------------------------------------ > > Key: SPARK-44311 > URL: https://issues.apache.org/jira/browse/SPARK-44311 > Project: Spark > Issue Type: Bug > Components: SQL > Affects Versions: 3.4.1 > Reporter: Emil Ejbyfeldt > Assignee: Emil Ejbyfeldt > Priority: Major > Fix For: 3.5.0 > > > Running the following code in a spark > ``` > final case class ValueClass(a: Int) extends AnyVal > final case class Wrapper(v: ValueClass) > val f = udf((a: ValueClass) => a.a > 0) > spark.createDataset(Seq(Wrapper(ValueClass(1)))).filter(f(col("v"))).show() > ``` > fails with > ``` > java.lang.ClassCastException: class org.apache.spark.sql.types.IntegerType$ > cannot be cast to class org.apache.spark.sql.types.StructType > (org.apache.spark.sql.types.IntegerType$ and > org.apache.spark.sql.types.StructType are in unnamed module of loader 'app') > at > org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveEncodersInUDF$$anonfun$apply$42$$anonfun$applyOrElse$218.$anonfun$applyOrElse$220(Analyzer.scala:3241) > at scala.Option.map(Option.scala:242) > at > org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveEncodersInUDF$$anonfun$apply$42$$anonfun$applyOrElse$218.$anonfun$applyOrElse$219(Analyzer.scala:3239) > at scala.collection.immutable.List.map(List.scala:246) > at scala.collection.immutable.List.map(List.scala:79) > at > org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveEncodersInUDF$$anonfun$apply$42$$anonfun$applyOrElse$218.applyOrElse(Analyzer.scala:3237) > at > org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveEncodersInUDF$$anonfun$apply$42$$anonfun$applyOrElse$218.applyOrElse(Analyzer.scala:3234) > at > org.apache.spark.sql.catalyst.trees.TreeNode.$anonfun$transformUpWithPruning$2(TreeNode.scala:566) > at > org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:104) > at > org.apache.spark.sql.catalyst.trees.TreeNode.transformUpWithPruning(TreeNode.scala:566) > ``` -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org