Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 对于org/apache/log4j/Logger,发现SBT存在Spark Core 3.0.1异常NoClassDef_Scala_Apache Spark_Intellij Idea_Sbt_Log4j - Fatal编程技术网

Scala 对于org/apache/log4j/Logger,发现SBT存在Spark Core 3.0.1异常NoClassDef

Scala 对于org/apache/log4j/Logger,发现SBT存在Spark Core 3.0.1异常NoClassDef,scala,apache-spark,intellij-idea,sbt,log4j,Scala,Apache Spark,Intellij Idea,Sbt,Log4j,我正在将Log4j与Scala 2.12.12和Spark-Core 3.0.1一起使用,但是当我将库依赖项更改为不在fat jar中打包Spark-Core时,我在尝试运行它时遇到以下错误: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger at com.some.package.name.Utils$.setup(Utils.scala:207)

我正在将
Log4j
Scala 2.12.12
Spark-Core 3.0.1
一起使用,但是当我将库依赖项更改为不在fat jar中打包Spark-Core时,我在尝试运行它时遇到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
    at com.some.package.name.Utils$.setup(Utils.scala:207)
    at com.some.package.name.Main$.main(Main.scala:9)
    at com.some.package.name.Main.main(Main.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 3 more

编译成功,如果我从dependencies行中删除
提供的
子句,一切正常。我的
build.sbt
如下所示:

scalaVersion := "2.12.12"

libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "3.0.1" % "provided",
"org.apache.logging.log4j" % "log4j-api" % "2.13.3",
"org.apache.logging.log4j" % "log4j-core" % "2.13.3",
"org.scalatest" %% "scalatest" % "3.2.0" % "test",
"com.holdenkarau" %% "spark-testing-base" % "3.0.1_1.0.0" % Test)

如果删除写入记录器的代码,则
SparkContext
的设置将显示为错误产生的行。

在EMR 6.2上运行应用程序时,我遇到了类似的问题


我发现一个声称AWS的spark core JAR缺少org/apache/spark/internal/Logging$class,但我无法验证这是否属实。

在尝试在EMR 6.2上运行应用程序时,我遇到了类似的问题


我发现一个声称AWS的spark core JAR缺少org/apache/spark/internal/Logging$类,但我无法验证这是否属实。

我接受这是一个部分答案,对这个问题的回答过程有所帮助,但还没有完整的答案。但是请注意,其他用户可能不会共享此解释。也许你可以更接近。我接受这是一个部分答案,对这个问题的回答过程有所贡献,但还没有完整的答案。但是请注意,其他用户可能不会共享此解释。也许你可以更靠近一点。