我是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}
但是,Row
和SparkSession
看似正常,但Column
似乎是灰色的。
我似乎无法弄清楚为什么Column
的工作方式不同。
任何帮助将不胜感激!谢谢!
答案 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 文件。