Databricks错误java.lang.NoSuchMethodError:scala.Predef $ .refArrayOps([Ljava / lang / Object;)[Ljava / lang / Object;

谢尔盖

我正在尝试从此链接运行一些示例代码:https : //databricks-prod-cloudfront.cloud.databricks.com/public/4027ec902e239c93eaaa8714f173bcfc/5537430417240233/312903576646278/3506802399907740/latest.html

我正在运行时6.3(包括Apache Spark 2.4.4,Scala 2.11)的集群上的databricks笔记本中运行它,最初使用

import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder.getOrCreate
import spark.implicits._

val df = Seq(
    ("one", 2.0),
    ("two", 1.5),
    ("three", 8.0)
  ).toDF("id", "val")

然后我尝试通过运行来获取字符串列表 df.select("id").map(_.getString(0)).collect.toList

我得到下面的错误

java.lang.NoSuchMethodError:scala.Predef $ .refArrayOps([Ljava / lang / Object;)[Ljava / lang / Object;

t line3700fe51392b4abe9744f6b3a059d $ iw read $ iw.iw w554b在line3b4fe51处读取$ $ $$ $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw $$ iw。 $ read $ iw $$ iw $$ iw $$ iw $$ iw。(Command-1275538363433250:57)at line3700fe51392b4abe9744f6b3a059dbfa46。$ Read iw $$ iw。-1275538363433250:59)at line3700fe51392b4abe9744f6b3a0546。Iw $ readbfa4646。 iw。(command-1275538363433250:65)at line3700fe51392b4abe9744f6b3a059dbfa46。$ read。(command-1275538363433250:67)行3700fe51392b4abe9744f6b3a059dbfa46。$ read $。(command-1275538363433250:71)行3700fe51392b4abe9744f6b3a059dbfa46。 line3700fe51392b4abe9744f6b3a059dbfa46上的$ print(:6)在sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在sun.reflect。$ eval。$ print()在scala.tools.nsc.interpreter.IMain $ ReadEvalPrint.call(IMain.scala:793)处java.lang.reflect.Method.invoke(Method.java:498)处invoke(DelegatingMethodAccessorImpl.java:43) .nsc.interpreter.IMain $ Request.loadAndRun(IMain.scala:1054),位于scala.tools.nsc.interpreter.IMain $ WrappedRequest $$ anonfun $ loadAndRunReq $ 1。在scala.tools.nsc.interpreter上应用(IMain.scala:645)。在Iala $ WrappedRequest $$ anonfun $ loadAndRunReq $ 1.apply(IMain.scala:644)在scala.reflect.internal.util.ScalaClassLoader $ class.asContext(在scala.reflect.internal.util.AbstractFileClassLoader.asContext(AbstractFileClassLoader.scala:19)处在scala.tools.nsc.interpreter.IMain $ WrappedRequest.loadAndRunReq(IMain.scala:644)处在scala.tools。 .nsc.interpreter.IMain.interpret(IMain.scala:576)位于scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:572)位于com.databricks.backend.daemon.driver.DriverILoop.execute(DriverILoop) .scala:215)com.databricks.backend.daemon.driver.ScalaDriverLocal $$ anonfun $ repl $ 1.apply $ mcV $ sp(ScalaDriverLocal.scala:202)at com.databricks.backend.daemon.driver.ScalaDriverLocal $$ anonfun $ repl $ 1.apply(ScalaDriverLocal.scala:202)位于com.databricks.backend。daemon.driver.ScalaDriverLocal $$ anonfun $ repl $ 1.apply(ScalaDriverLocal.scala:202)位于com.databricks.backend.daemon.driver.DriverLocal $ TrapExitInternal $ .trapExit(DriverLocal.scala:699)位于com.databricks.backend com.databricks.backend.daemon.driver.ScalaDriverLocal.repl(ScalaDriverLocal.scala:202)上的.daemon.driver.DriverLocal $ TrapExit $ .apply(DriverLocal.scala:652),位于com.databricks.backend.daemon.driver上。驱动程序Local $$ anonfun $ execute $ 9.apply(DriverLocal.scala:385)位于com.databricks.backend.daemon.driver.DriverLocal $$ anonfun $ execute $ 9.apply(DriverLocal.scala:362)位于com.databricks.logging。 UsageLogging $$ anonfun $ withAttributionContext $ 1.apply(UsageLogging.scala:251)位于scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)位于com.databricks.logging.UsageLogging $ class.withAttributionContext(UsageLogging.scala:246)在com.databricks.backend.daemon中。com.databricks.backend.daemon.driver.DriverLocal.withAttributionTags(DriverLocal.scala:Driver.DriverLocal.withAttributionContext(DriverLocal.scala:49)位于com.databricks.logging.UsageLogging $ class.withAttributionTags(UsageLogging.scala:288) 49)在com.databricks.backend.daemon.driver.DriverLocal.execute(DriverLocal.scala:362)在com.databricks.backend.daemon.driver.DriverWrapper $$ anonfun $ tryExecutingCommand $ 2.apply(DriverWrapper.scala:644)在com.databricks.backend.daemon.driver.DriverWrapper $$ anonfun $ tryExecutingCommand $ 2.apply(DriverWrapper.scala:644)处在scala.util.Try $ .apply(Try.scala:192)在com.databricks.backend处。 daemon.driver.DriverWrapper.tryExecutingCommand(DriverWrapper.scala:639)位于com.databricks.backend.daemon.driver.DriverWrapper.getCommandOutputAndError(DriverWrapper.scala:485)位于com.databricks.backend.daemon.driver.DriverWrapper。com.databricks.backend.daemon.driver.DriverWrapper.runInnerLoop(DriverWrapper.scala:390)处的executeCommand(DriverWrapper.scala:597)com.databricks.backend.daemon.driver.DriverWrapper.runInner(DriverWrapper.scala:337)处的executeCommand(DriverWrapper.scala:597)在com.databricks.backend.daemon.driver.DriverWrapper.run(DriverWrapper.scala:219)处在java.lang.Thread.run(Thread.java:748)

运行时出现相同的错误 df.select("id").collect().map(_(0)).toList

但跑步时不行 df.select("id").rdd.map(_(0)).collect.toList

上面运行的命令成功返回一个List [Any],但我需要一个List [String]

有人可以请教吗?我怀疑这是sparkscala版本不匹配,但我不知道出了什么问题。

拉斐尔·罗斯(Raphael Roth)

例外

java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object;

如果混合使用不同的Scala版本,通常会出现这种情况。您是否为scala 2.12加载了任何依赖项?

编辑:我只是在相同的运行时在databricks中测试了您的代码,效果很好....

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章