【问题标题】:Spark : java.lang.NoClassDefFoundError: scala/collection/mutable/ArraySeq$ofRef火花:java.lang.NoClassDefFoundError:scala/collection/mutable/ArraySeq$ofRef
【发布时间】:2019-09-27 22:28:12
【问题描述】:

我正在尝试使用spark-submit 运行一个简单的字数统计程序并遇到异常。

线程“main”中的异常 java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: scala/集合/可变/ArraySeq$ofRef 在 SparkWordCount$.main(SparkWordCount.scala:18)

从第 18 行开始的代码是

val count = input.flatMap(line ⇒ line.split(" "))
    .map(word ⇒ (word, 1))
    .reduceByKey(_ + _)

我的环境:

  • Windows 10
  • java版本“1.8.0_221”
  • spark-shell 显示:Spark 版本 2.4.4(使用 Scala 版本 2.11.12)
  • scala -version 命令显示 Scala 代码运行器版本 2.13.1

【问题讨论】:

  • 2.11 和 2.13 不兼容,但 scala -version 不一定相关。如果你有build.sbt 文件,它是什么样的?
  • 哦,好的,知道了。我不使用 build.sbt。我删除了系统 Scala (v 2.13.1) 并使用 scala-2.11.12.msi 安装了 Scala v 2.11。现在我用 Scala 2.11.12 编译并 spark-submit 到使用 Scala 2.11.12 的 Spark 2.4.4。现在程序运行。
  • @user1575148 我建议你使用 SBT 手动编译项目将是一场噩梦。

标签: scala apache-spark


【解决方案1】:

如 cmets 中所述,解决方案是使用您将在集群上使用的相同版本的 Scala 进行开发。

【讨论】:

    猜你喜欢
    • 2020-01-02
    • 2017-01-01
    • 2011-01-22
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2023-03-26
    相关资源
    最近更新 更多