[
https://issues.apache.org/jira/browse/SPARK-44311?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Herman van Hövell reassigned SPARK-44311:
-----------------------------------------
Assignee: Emil Ejbyfeldt
> 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
>
> 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: [email protected]
For additional commands, e-mail: [email protected]