首页 > 解决方案 > 使用 udf 在 scala 中抛出 classNotFoundException

问题描述

我正在使用具有简单功能的 UDF:

val upper: String => String = _.toUpperCase
import org.apache.spark.sql.functions.udf
val upperUDF = udf(upper)
dataset.withColumn("upper", upperUDF(col('text')).show

但得到以下异常:

java.lang.ClassNotFoundException: $line20.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw $$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$ iw$$iw$$iw$$anonfun$4 at java.lang.ClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass( ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at org.apache.spark.serializer.JavaDeserializationStream$$anon$1.resolveClass( JavaSerializer.scala:67) 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1859) 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1745) 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2033) ) 在 java.io.ObjectInputStream。readObject0(ObjectInputStream.java:1567) 在 java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2278) 在 java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2202) 在 java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java :2060) 在

标签: scalaapache-sparkuser-defined-functions

解决方案


推荐阅读