Apache spark Spark sql错误
我尝试使用spark sql,但出现以下错误: 错误:加载类文件时检测到缺少或无效的依赖项 “package.class”。无法访问包中的术语批注 org.apache.spark,因为缺少它(或它的依赖项)。检查 缺少或冲突依赖项的生成定义。(重新运行 使用Apache spark Spark sql错误,apache-spark,apache-spark-sql,Apache Spark,Apache Spark Sql,我尝试使用spark sql,但出现以下错误: 错误:加载类文件时检测到缺少或无效的依赖项 “package.class”。无法访问包中的术语批注 org.apache.spark,因为缺少它(或它的依赖项)。检查 缺少或冲突依赖项的生成定义。(重新运行 使用-Ylog classpath查看有问题的类路径。)完整的 如果“package.class”是根据 org.apache.spark的版本不兼容。警告:课堂 找不到org.apache.spark.annotation.Interface
-Ylog classpath
查看有问题的类路径。)完整的
如果“package.class”是根据
org.apache.spark的版本不兼容。警告:课堂
找不到org.apache.spark.annotation.InterfaceStability-继续
用存根。错误:运行时检测到缺少或无效的依赖项
正在加载类文件“SparkSession.class”。无法访问术语
包org.apache.spark中的注释,因为
缺少依赖项。检查生成定义是否丢失或丢失
相互冲突的依赖关系。(使用-Ylog classpath
重新运行以查看
有问题的类路径。)如果
“SparkSession.class”是根据的不兼容版本编译的
org.apache.spark
我的配置:
- Scala 2.11.8
- Spark-core_2.11-2.1.0
- Spark-sql_2.11-2.1.0
- 注意:我使用SparkSession
- spark-U 2.11-2.1.1
- spark-tags_2.11-2.1.1
- spark-U 2.11-2.1.1
- spark-tags_2.11-2.1.1
缺少符号“term org.apache.spark.annotation”。。。如果“SparkSession.class”是针对不兼容的org.apache.spark版本编译的,则完整重建可能会有所帮助
打开SparkSession.class
,搜索“import org.apache.spark.annotation.”,您将找到import org.apache.spark.annotation.{DeveloperApi,Experimental,InterfaceStability}
。可以肯定的是,类路径中缺少这些类。您需要找到包含这些类的工件
因此打开并用c:“DeveloperApi”和g:“org.apache.spark”
搜索,您将发现缺少的工件是@Prakash回答的spark标记
在我的情况下,只需在pom.xml中添加依赖项spark-catalyst
和spark-tags
但奇怪的是,为什么maven不在这里自动解析可传递依赖项?
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
org.apache.spark
spark-core_2.11
2.2.0
假如
如果使用上述依赖关系,则只有spark-core_2.11-2.2.0.jar处于maven依赖关系中;而如果我将版本更改为2.1.0或2.3.0,则所有可传递的依赖项都将存在 在深入了解错误消息后,我知道如何解决此类错误。
例如:
错误-缺少符号“term org.apache.spark.annotation”。。。如果“SparkSession.class”是针对不兼容的org.apache.spark版本编译的,则完整重建可能会有所帮助
打开SparkSession.class
,搜索“import org.apache.spark.annotation.”,您将找到import org.apache.spark.annotation.{DeveloperApi,Experimental,InterfaceStability}
。可以肯定的是,类路径中缺少这些类。您需要找到包含这些类的工件
因此打开并用c:“DeveloperApi”和g:“org.apache.spark”
搜索,您将发现缺少的工件是@Prakash回答的spark标记
在我的情况下,只需在pom.xml中添加依赖项spark-catalyst
和spark-tags
但奇怪的是,为什么maven不在这里自动解析可传递依赖项?
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
org.apache.spark
spark-core_2.11
2.2.0
假如
如果使用上述依赖关系,则只有spark-core_2.11-2.2.0.jar处于maven依赖关系中;而如果我将版本更改为2.1.0或2.3.0,则所有可传递的依赖项都将存在 你能分享一下你是如何解决这个问题的吗?@yashharma,我刚刚使用了sbt工具并将其放入build.sbt:libraryDependencies++=Seq(“org.apache.spark”%%“spark core”%%“2.1.0”%”“provided”,“org.apache.spark”%%“spark sql”%%“2.1.0”%”provided)你能分享一下你是如何解决这个问题的吗?@yashharma,我只是使用了sbt工具并将其放入build.sbt中:libraryDependencies++=Seq(“org.apache.spark”%%“spark core”%%“2.1.0”%”提供;“org.apache.spark”%%“spark sql”%%“2.1.0”%”提供)似乎是可行的。但是错误从类路径中缺少Symbol“term org.apache.spark.annotation”更改为类路径中缺少Symbol“term org.apache.spark.sql.catalyst.plans”。但是错误从类路径中缺少Symbol“term org.apache.spark.annotation”更改为类路径中缺少Symbol“term org.apache.spark.sql.catalyst.plans”