scala - 使用 scala 2.12.10 时 spark 的 pom.xml 依赖项
问题描述
在使用 scala 2.12.10 时,这些 Apache Spark 依赖项不起作用
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.12.10</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>3.0.1</version>
</dependency>
</dependencies>
从 IntelliJ 运行 spark 应用程序时出错
线程“main”中的异常 java.lang.NoSuchMethodError: org.apache.spark.SparkConf$DeprecatedConfig.(SparkConf.scala:784) 的 org.apache.spark 的 scala.Product.$init$(Lscala/Product;)V .SparkConf$.(SparkConf.scala:605) 在 org.apache.spark.SparkConf$.(SparkConf.scala) 在 org.apache.spark.SparkConf.set(SparkConf.scala:94) 在 org.apache.spark。 SparkConf.set(SparkConf.scala:83) 在 org.apache.spark.SparkConf.setMaster(SparkConf.scala:115) 在 org.apache.spark.SparkContext$.updatedConf(SparkContext.scala:2717) 在 org.apache。 spark.SparkContext.(SparkContext.scala:153)
但是,这组依赖项在同一个 spark 应用程序中工作得很好。
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.11.8</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.4.1</version>
</dependency>
代码片段 -
import org.apache.spark.SparkContext
import org.apache.log4j.{Level, Logger}
object Testing1
{
def main(args : Array[String]): Unit = {
Logger.getLogger("org").setLevel(Level.OFF)
val sc = new SparkContext("local[*]" , "SparkDemo")
val lines = sc.textFile("sample.txt");
val words = lines.flatMap(line => line.split(' '))
val wordsKVRdd = words.map(x => (x,1))
val count = wordsKVRdd.reduceByKey((x,y) => x + y).map(x => (x._2,x._1)).sortByKey(false).map(x => (x._2, x._1)).take(10)
count.foreach(println)
}
}
解决方案
此错误说明 Scala 版本不兼容。您要么有另一个依赖于 Scala 2.11 的依赖项,要么只需要mvn clean
摆脱使用 Scala 2.11 编译的旧类。还要检查项目设置中配置的 Scala 版本。
推荐阅读
- neo4j - 如何在图数据库中找到最受欢迎的产品?
- java - 解释替代 For 循环的递归方法中的行为
- python - python输入提示字符串长度
- c# - 如何使用 Itext 修复方向错误的 PDF
- scrollable - draw.io 如何将容器元素设置为可垂直滚动
- r - R ggplot - 将多条线性回归线绘制到一个图上
- full-text-search - 使用引导主题搜索 Sphinx
- android - 使用 Google Fit 的 Android 应用程序中的 OAuth 同意屏幕为空白
- javascript - Plotly JS crossfilter on id with multiple graphs
- mongodb - CastError:TypeScript REST 和 Mongoose 中路径“_id”处值“1225589795”的值“1225589795”转换为 ObjectId 失败