Apache spark Spark sql错误

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

我尝试使用spark sql,但出现以下错误:

错误:加载类文件时检测到缺少或无效的依赖项 “package.class”。无法访问包中的术语批注 org.apache.spark,因为缺少它(或它的依赖项)。检查 缺少或冲突依赖项的生成定义。(重新运行 使用
-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”