【问题标题】:NoClassDefFoundError: Could Not Initialise class org.apache.spark.packageNoClassDefFoundError:无法初始化类 org.apache.spark.package
【发布时间】:2019-11-28 08:11:22
【问题描述】:

我正在尝试对 apache spark 的 MLLib 进行一些更改。我从Github 克隆了最新的spark repo,在IntelliJ 中使用JDK 1.8.0scala-sdk-2.12.6 将MLLib 作为一个项目打开,并创建了一个临时文件以确保我可以运行这些东西。

这是目前正在测试的所有代码:

import org.apache.spark.sql.SparkSession
val spark = SparkSession.builder.master("local").appName("IncrementalCB").getOrCreate()

返回错误:

java.lang.NoClassDefFoundError: Could not initialize class org.apache.spark.package$
    at org.apache.spark.SparkContext.$anonfun$new$1(scratch_1.scala:179)
    at org.apache.spark.internal.Logging.logInfo(scratch_1.scala:53)
    at org.apache.spark.internal.Logging.logInfo$(scratch_1.scala:52)
    at org.apache.spark.SparkContext.logInfo(scratch_1.scala:73)
    at org.apache.spark.SparkContext.<init>(scratch_1.scala:179)
    at org.apache.spark.SparkContext$.getOrCreate(scratch_1.scala:2508)
    at org.apache.spark.sql.SparkSession$Builder.$anonfun$getOrCreate$5(scratch_1.scala:942)
    at scala.Option.getOrElse(scratch_1.scala:134)
    at org.apache.spark.sql.SparkSession$Builder.getOrCreate(scratch_1.scala:933)
    at #worksheet#.spark$lzycompute(scratch_1.scala:2)
    at #worksheet#.spark(scratch_1.scala:2)
    at #worksheet#.get$$instance$$spark(scratch_1.scala:2)
    at #worksheet#.#worksheet#(scratch_1.scala:10)

虽然我不太确定情况如何,但我怀疑它可能与 JAR 或版本相关。有谁愿意填空吗?谢谢!

【问题讨论】:

    标签: scala apache-spark intellij-idea apache-spark-mllib


    【解决方案1】:

    首先:您无需从 GitHub 克隆 Spark 存储库即可使用 spark。

    第二:与其使用临时文件,不如使用mavensbt 设置项目。

    他们将节省您购买所有依赖项的时间。

    【讨论】:

    • 感谢弗拉迪斯拉夫的评论。我知道使用 Spark 不需要克隆。就我而言,我正在尝试对 Spark 的源代码进行更改,并且临时文件用于在我更改函数时简单地测试函数。您对解决上述错误消息有任何见解吗?
    • 你是否编译过克隆的 Spark 项目?
    • 一般来说-spark项目中有单元测试。我只会创建单元测试来重现您遇到的某些错误。您可以以已经存在的测试为例。无论如何,做单元测试是个好习惯。
    猜你喜欢
    • 1970-01-01
    • 2013-10-27
    • 2014-12-05
    • 2019-08-22
    • 2017-02-28
    • 2016-09-03
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多