我已经成功构建了 Spark 2.1 源代码。
但是,当我运行一些示例(例如,org.apache.spark.examples.mllib.BinaryClassification
)时,我收到以下错误。
线程“main”java.lang.NoClassDefFoundError中出现异常:scopt/OptionParser
我尝试使用 Spark 2.1 预构建版本 (examples/jars/spark-examples_2.11-2.1.0.jar
) 运行这些示例,但遇到了相同的错误。 Spark 1.6 预构建版本可以运行(lib/spark-examples-1.6.2-hadoop2.6.0.jar
)。有posts与此错误相关,但它们似乎不适用,因为 Spark examples
文件夹没有任何 .sbt
文件。
最佳答案
我找到了答案。为了避免该错误,还应使用 --jars
提交 scopt_x.xx-x.x.x.jar
。当您构建 Spark 示例时,除了 spark-examples_x.xx-x.x.x.jar
之外,还会构建 scopt_x.xx-x.x.x.jar
(在我的例子中,在同一目标中)文件夹examples/target/scala-2.11/jars
)。
获得 jar 文件后,您可以将其与您的应用程序一起提交:
./bin/spark-submit \
--jars examples/target/scala-2.11/jars/scopt_x.xx-x.x.x.jar \
--class org.apache.spark.examples.mllib.BinaryClassification \
--master ...
关于scala - Spark 示例 NoClassDefFoundError scopt/OptionParser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42310231/