线程" main"中的例外情况java.lang.NoClassDefFoundError:org / apache / spark / sql / Column

时间:2018-01-03 22:24:01

标签: scala intellij-idea sbt

我是Scala和Intellij的新手,并且一直在努力应对以下错误:

java.lang.NoClassDefFoundError: org/apache/spark/sql/Column

我使用依赖项构建了我的scala / sbt项目:

libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "2.2.0" % "provided"

我可以添加以下导入:

import org.apache.spark.sql.{Row, SparkSession, Column}

但是,RowSparkSession看似正常,但Column似乎是灰色的。

我似乎无法弄清楚为什么Column的工作方式不同。

任何帮助将不胜感激!谢谢!

2 个答案:

答案 0 :(得分:0)

我的Maven项目中也遇到了类似的错误,我发现这是由于 在我的pom.xml的<scope>标记中提供了值

<dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.11</artifactId>
            <version>${spark.version}</version>
            <scope>provided</scope>
        </dependency>

此提供的内容不允许我的spark-SQL依赖关系得到解决,因此我得到了上述错误,一旦我评论了提供的部分,spark_sql的依赖关系已解决,那么此错误....需要弄清楚为什么在sbt中无法解决您的依赖关系,因为那是我的原因。

答案 1 :(得分:0)

我也是 Scala 新手。通过删除 provided 解决了相同的错误。但是我遇到了另一个错误,需要添加

assemblyMergeStrategy in assembly := {
 case PathList("META-INF", xs @ _*) => MergeStrategy.discard
 case x => MergeStrategy.first
}

到 sbt 文件。