我尝试使用spark-sql但是我遇到了以下错误:
错误:加载类文件时检测到缺失或无效的依赖项 ' package.class&#39 ;.无法访问包中的术语注释 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。
我的配置:
Spark-sql_2.11-2.1.0
注意:我使用SparkSession。
答案 0 :(得分:3)
在深入了解错误信息后,我知道如何解决这类错误。 例如:
错误 - Symbol 'term org.apache.spark.annotation' is missing... A full rebuild may help if 'SparkSession.class' was compiled against an incompatible version of org.apache.spark
打开SparkSession.class
,搜索“import org.apache.spark.annotation。”,您会找到import org.apache.spark.annotation.{DeveloperApi, Experimental, InterfaceStability}
。确定classpath中缺少这些类。你需要找到结束这些类的工件。
开放https://search.maven.org并使用c:"DeveloperApi" AND g:"org.apache.spark"
进行搜索,您会发现丢失的工件{@ 1}}为@Prakash回答。
在我的情况下,只需在pom.xml中添加依赖项spark-tags
和spark-catalyst
。
但是,为什么maven不能自动解决传递依赖?这很奇怪?
spark-tags
如果我使用上述依赖性,则只有spark-core_2.11-2.2.0.jar属于maven依赖;如果我将版本更改为2.1.0或2.3.0,则所有传递依赖项都将存在。
答案 1 :(得分:2)
您需要包含以下工件以避免依赖性问题。