首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession

java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession
EN

Stack Overflow用户
提问于 2017-07-31 09:51:55
回答 10查看 42.7K关注 0票数 19

我用Java写了一个火花作业。当我提交职务时,它会出现以下错误:

代码语言:javascript
运行
复制
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/sql/SparkSession
        at com.thinkbiganalytics.veon.util.SparkSessionBuilder.getOrCreateSparkSession(SparkSessionBuilder.java:12)
        at com.thinkbiganalytics.veon.AbstractSparkTransformation.initSparkSession(AbstractSparkTransformation.java:92)
        at com.thinkbiganalytics.veon.transformations.SDPServiceFeeDeductionSourceToEventStore.init(SDPServiceFeeDeductionSourceToEventStore.java:57)
        at com.thinkbiganalytics.veon.AbstractSparkTransformation.doTransform(AbstractSparkTransformation.java:51)
        at com.thinkbiganalytics.veon.transformations.SDPServiceFeeDeductionSourceToEventStore.main(SDPServiceFeeDeductionSourceToEventStore.java:51)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:745)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.sql.SparkSession
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2017-10-26 06:37:38

使用spark-submit提交时,请检查您的项目是否与pom.xml中的spark版本具有相同的依赖关系,

--这可能是因为在同一台机器上有两个火花版本--

如果您希望在您的计算机上安装不同的星火,您可以创建不同的软链接,并且可以使用您构建项目的精确星火版本。

代码语言:javascript
运行
复制
spark1-submit -> /Users/test/sparks/spark-1.6.2-bin-hadoop2.6/bin/spark-submit

spark2–submit -> /Users/test/sparks/spark-2.1.1-bin-hadoop2.7/bin/spark-submit

以下是Cloudera博客中关于多个星火版本https://community.cloudera.com/t5/Advanced-Analytics-Apache-Spark/Multiple-Spark-version-on-the-same-cluster/td-p/39880的链接

票数 9
EN

Stack Overflow用户

发布于 2021-03-06 20:27:46

如果您从Intellij内部运行,并且您已经将您的星火库标记为“提供”(如:"org.apache.spark" %% "spark-sql" % "3.0.1" % "provided" ),那么您需要编辑您的Run/Debug配置,并检查“包含提供范围的依赖项”框。

票数 28
EN

Stack Overflow用户

发布于 2020-04-26 14:07:05

我在运行Intellij编辑器时遇到了这个问题。我已经标记了pom.xml中提供的火花罐,请参见下面的内容:

代码语言:javascript
运行
复制
<dependency>
     <groupId>org.apache.spark</groupId>
     <artifactId>spark-sql_2.11</artifactId>
     <version>2.4.0</version>
     <scope>provided</scope>
 </dependency>

删除提供的作用域后,错误就消失了。

在制作提供的星火罐时,它们只能在使用spark-submit运行应用程序或在类路径上使用火花罐时提供。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45412593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档