Databricks error java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object;
Databricks error java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object;
我正在尝试 运行 来自这个 link 的一些示例代码:https://databricks-prod-cloudfront.cloud.databricks.com/public/4027ec902e239c93eaaa8714f173bcfc/5537430417240233/312903576646278/3506802399907740/latest.html
我运行在集群上的数据块笔记本中使用 运行时间 6.3(包括 Apache Spark 2.4.4、Scala 2.11)
我最初使用
创建数据框
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")
然后我尝试通过 运行ning 获取字符串列表
df.select("id").map(_.getString(0)).collect.toList
我得到以下错误
java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object;
t line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.(command-1275538363433250:2)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw.(command-1275538363433250:53)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw$$iw$$iw$$iw$$iw.(command-1275538363433250:55)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw$$iw$$iw$$iw.(command-1275538363433250:57)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw$$iw$$iw.(command-1275538363433250:59)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw$$iw.(command-1275538363433250:61)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw.(command-1275538363433250:63)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw.(command-1275538363433250:65)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$read.(command-1275538363433250:67)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$.(command-1275538363433250:71)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$.(command-1275538363433250)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$eval$.$print$lzycompute(:7)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$eval$.$print(:6)
在 line3700fe51392b4abe9744f6b3a059dbfa46.$eval.$print()
在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:498)
在 scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:793)
在 scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:1054)
在 scala.tools.nsc.interpreter.IMain$WrappedRequest$$anonfun$loadAndRunReq$1.apply(IMain.scala:645)
在 scala.tools.nsc.interpreter.IMain$WrappedRequest$$anonfun$loadAndRunReq$1.apply(IMain.scala:644)
在 scala.reflect.internal.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:31)
在 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)
在 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.daemon.driver.DriverLocal$TrapExit$.apply(DriverLocal.scala:652)
在 com.databricks.backend.daemon.driver.ScalaDriverLocal.repl(ScalaDriverLocal.scala:202)
在 com.databricks.backend.daemon.driver.DriverLocal$$anonfun$execute$9.apply(DriverLocal.scala:385)
在 com.databricks.backend.daemon.driver.DriverLocal$$anonfun$执行 $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.driver.DriverLocal.withAttributionContext(DriverLocal.scala:49)
在 com.databricks.logging.UsageLogging$class.withAttributionTags(UsageLogging.scala:288)
在 com.databricks.backend.daemon.driver.DriverLocal.withAttributionTags(DriverLocal.scala: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.executeCommand(DriverWrapper.scala:597)
在 com.databricks.backend.daemon.driver.DriverWrapper.运行InnerLoop(DriverWrapper.scala:390)
在 com.databricks.backend.daemon.driver.DriverWrapper.运行 内部 (DriverWrapper.scala:337)
在 com.databricks.backend.daemon.driver.DriverWrapper.运行(DriverWrapper.scala:219)
在 java.lang.Thread.run(Thread.java:748)
我在 运行ning 时遇到同样的错误
df.select("id").collect().map(_(0)).toList
但在 运行ning 时不是
df.select("id").rdd.map(_(0)).collect.toList
上面的命令 运行 成功 returns 一个 List[Any],但我需要一个 List[String]
有人可以指点一下吗?我怀疑这是 sparkscala 版本不匹配,但我无法找出问题所在。
在 .map
中使用 .toString
转换为字符串,结果将是 List[String]
Example:
df.select("id").collect().map(x => x(0).toString).toList
List[String] = List(one, two, three)
异常
java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object;
如果混合使用不同的 Scala 版本,通常会出现这种情况。您是否为 scala 2.12 加载了任何依赖项?
编辑:我刚刚用相同的运行时在数据块中测试了你的代码,工作得很好....
我正在尝试 运行 来自这个 link 的一些示例代码:https://databricks-prod-cloudfront.cloud.databricks.com/public/4027ec902e239c93eaaa8714f173bcfc/5537430417240233/312903576646278/3506802399907740/latest.html
我运行在集群上的数据块笔记本中使用 运行时间 6.3(包括 Apache Spark 2.4.4、Scala 2.11) 我最初使用
创建数据框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")
然后我尝试通过 运行ning 获取字符串列表
df.select("id").map(_.getString(0)).collect.toList
我得到以下错误
java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object;
t line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw$$iw.(command-1275538363433250:2) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw$$iw$$iw$$iw$$iw$$iw.(command-1275538363433250:53) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw$$iw$$iw$$iw$$iw.(command-1275538363433250:55) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw$$iw$$iw$$iw.(command-1275538363433250:57) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw$$iw$$iw.(command-1275538363433250:59) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw$$iw.(command-1275538363433250:61) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw$$iw.(command-1275538363433250:63) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$$iw.(command-1275538363433250:65) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$read.(command-1275538363433250:67) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$.(command-1275538363433250:71) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$read$.(command-1275538363433250) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$eval$.$print$lzycompute(:7) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$eval$.$print(:6) 在 line3700fe51392b4abe9744f6b3a059dbfa46.$eval.$print() 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:793) 在 scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:1054) 在 scala.tools.nsc.interpreter.IMain$WrappedRequest$$anonfun$loadAndRunReq$1.apply(IMain.scala:645) 在 scala.tools.nsc.interpreter.IMain$WrappedRequest$$anonfun$loadAndRunReq$1.apply(IMain.scala:644) 在 scala.reflect.internal.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:31) 在 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) 在 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.daemon.driver.DriverLocal$TrapExit$.apply(DriverLocal.scala:652) 在 com.databricks.backend.daemon.driver.ScalaDriverLocal.repl(ScalaDriverLocal.scala:202) 在 com.databricks.backend.daemon.driver.DriverLocal$$anonfun$execute$9.apply(DriverLocal.scala:385) 在 com.databricks.backend.daemon.driver.DriverLocal$$anonfun$执行 $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.driver.DriverLocal.withAttributionContext(DriverLocal.scala:49) 在 com.databricks.logging.UsageLogging$class.withAttributionTags(UsageLogging.scala:288) 在 com.databricks.backend.daemon.driver.DriverLocal.withAttributionTags(DriverLocal.scala: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.executeCommand(DriverWrapper.scala:597) 在 com.databricks.backend.daemon.driver.DriverWrapper.运行InnerLoop(DriverWrapper.scala:390) 在 com.databricks.backend.daemon.driver.DriverWrapper.运行 内部 (DriverWrapper.scala:337) 在 com.databricks.backend.daemon.driver.DriverWrapper.运行(DriverWrapper.scala:219) 在 java.lang.Thread.run(Thread.java:748)
我在 运行ning 时遇到同样的错误
df.select("id").collect().map(_(0)).toList
但在 运行ning 时不是
df.select("id").rdd.map(_(0)).collect.toList
上面的命令 运行 成功 returns 一个 List[Any],但我需要一个 List[String]
有人可以指点一下吗?我怀疑这是 sparkscala 版本不匹配,但我无法找出问题所在。
在 .map
中使用 .toString
转换为字符串,结果将是 List[String]
Example:
df.select("id").collect().map(x => x(0).toString).toList
List[String] = List(one, two, three)
异常
java.lang.NoSuchMethodError: scala.Predef$.refArrayOps([Ljava/lang/Object;)[Ljava/lang/Object;
如果混合使用不同的 Scala 版本,通常会出现这种情况。您是否为 scala 2.12 加载了任何依赖项?
编辑:我刚刚用相同的运行时在数据块中测试了你的代码,工作得很好....