您很可能使用 Scala 2.12 在本地编译代码,但在服务器上它使用 Scala 2.13 或 2.11 运行。
尝试使用服务器上的 Scala 版本重新编译代码。
Scala 2.11、2.12、2.13 二进制不兼容。
的签名refArrayOps
不同(以二进制不兼容的方式)
def refArrayOps(scala.Array[scala.Any]): scala.Any
(头皮)
public <T> T[] refArrayOps(T[])
(javap)scalap 和 javap 显示不同的方法签名 https://stackoverflow.com/questions/44121009/scalap-and-javap-showing-different-method-signature
@inline implicit def refArrayOps[T <: AnyRef](xs: Array[T]): ArrayOps[T]
[api https://www.scala-lang.org/api/2.13.10/scala/Predef%24.html#refArrayOps%5BT%3C:AnyRef%5D(xs:Array%5BT%5D):scala.collection.ArrayOps%5BT%5D] [sources https://github.com/scala/scala/blob/v2.13.10/src/library/scala/Predef.scala#L464]
def refArrayOps(scala.Array[scala.Any]): scala.Array[scala.Any]
(头皮)
public <T> T[] refArrayOps(T[])
(javap)
implicit def refArrayOps[T <: AnyRef](xs: Array[T]): ArrayOps.ofRef[T]
[api https://www.scala-lang.org/api/2.12.17/scala/Predef%24.html#refArrayOps%5BT%3C:AnyRef%5D(xs:Array%5BT%5D):scala.collection.mutable.ArrayOps.ofRef%5BT%5D] [sources https://github.com/scala/scala/blob/v2.12.17/src/library/scala/Predef.scala#L450]
def refArrayOps(scala.Array[scala.Any]): scala.collection.mutable.ArrayOps
(头皮)
public <T> scala.collection.mutable.ArrayOps<T> refArrayOps(T[])
(javap)
implicit def refArrayOps[T <: AnyRef](xs: Array[T]): ArrayOps[T]
[api 2.11 https://www.scala-lang.org/api/2.11.12/index.html#scala.Predef%24@refArrayOps%5BT%3C:AnyRef%5D(xs:Array%5BT%5D):scala.collection.mutable.ArrayOps%5BT%5D 2.10 https://www.scala-lang.org/api/2.10.7/index.html#scala.Predef%24] [来源2.11 https://github.com/scala/scala/blob/v2.11.12/src/library/scala/Predef.scala#L344 2.10 https://github.com/scala/scala/blob/v2.10.7/src/library/scala/Predef.scala#L334 2.9 https://github.com/scala/scala/blob/v2.9.3/src/library/scala/Predef.scala#L295]
Kafka 在 MAC 上启动错误 .. 与 java 和 scala 相关的东西 ... NoSuchMethodError: scala.Predef$.refArrayOps https://stackoverflow.com/questions/75712355/kafka-start-error-on-mac-something-related-to-java-and-scala-nosuchmethod
java.lang.NoSuchMethodError: scala.Predef$.refArrayOps https://stackoverflow.com/questions/40328948/java-lang-nosuchmethoderror-scala-predef-refarrayops
如何修复 NoSuchMethodError? https://stackoverflow.com/questions/35186/how-do-i-fix-a-nosuchmethoderror
尝试将表保存到 Hive 时出现 java.lang.NoSuchMethodError:org.apache.hadoop.hive.common.FileUtils.mkdir https://stackoverflow.com/questions/75880410/java-lang-nosuchmethoderror-org-apache-hadoop-hive-common-fileutils-mkdir-while
java.lang.NoSuchMethodError:Scala Spark 作业中的 scala.Predef$.refArrayOps https://stackoverflow.com/questions/61675153/java-lang-nosuchmethoderror-scala-predef-refarrayops-in-spark-job-with-scala
你可以运行
import java.net.URLClassLoader
import java.util.Arrays
// List.unfold(getClass.getClassLoader) { cl =>
// val urls = s"classloader: ${cl.getClass.getName}" ::
// (cl match {
// case cl: URLClassLoader =>
// "classloader urls:" ::
// cl.getURLs.map(_.toString).toList
// case _ => List("not URLClassLoader")
// })
// Option.when(cl != null)((urls, cl.getParent))
// }.flatten.foreach(println)
var cl = getClass.getClassLoader
while (cl != null) {
println(s"classloader: ${cl.getClass.getName}")
cl match {
case cl: URLClassLoader =>
println("classloader urls:")
// cl.getURLs.foreach(println) // uses Scala refArrayOps again
println(Arrays.toString(cl.getURLs.asInstanceOf[Array[Object]])) // pure Java
case _ =>
println("not URLClassLoader")
}
cl = cl.getParent
}
or
println(
System.getProperty("java.class.path")
)
(System.getProperty("java.class.path") 和 getClassLoader.getURLs() 有什么区别? https://stackoverflow.com/questions/18626396/whats-the-difference-between-system-getpropertyjava-class-path-and-getclass)
在您正在使用的实际 Spark 环境中。然后你会看到你的类路径。是否有不同scala-library
, 是否有不同_2.11
, _2.12
, _2.13
依赖关系。
https://www.scala-sbt.org/1.x/docs/Howto-Classpaths.html https://www.scala-sbt.org/1.x/docs/Howto-Classpaths.html
scalacOptions += "-Ylog-classpath"
scala -version
显示系统中安装的 Scala。类路径中的 Scala 可能不同。
为什么 SBT 显示的 ScalaVersion 与我的系统不同? https://stackoverflow.com/questions/75531849/why-does-sbt-show-a-different-scalaversion-than-my-system
build.sbt 不适用于不同的 Scala 版本 https://stackoverflow.com/questions/75883832/build-sbt-does-not-work-with-different-scala-versions