scala - java.lang.ClassNotFoundException 与 spark-submit
问题描述
我安装了 spark 2.4.3 和 sbt 1.2.8。我在windows 10 pro下。
java -version
给出:
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
我尝试从 spark.apache.org执行快速入门
在我使用 sbt 之前,一切都运行良好。然后我得到以下异常
java.lang.ClassNotFoundException:scala.runtime.LambdaDeserialize
我读了很多关于拥有良好版本的火花和良好版本的scala的重要性
我的 build.sbt 是:
name := "simple-app"
version := "1.0"
scalaVersion := "2.12.8"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.3"
我的代码是:
import org.apache.spark.sql.SparkSession
object SimpleApp {
def main(args: Array[String]) {
print("Hello !\r\n")
val logFile = "D:/bin/spark/README.md" // Should be some file on your system
val spark = SparkSession.builder.appName("Simple Application").getOrCreate()
val logData = spark.read.textFile(logFile).cache()
val numAs = logData.filter(line => line.contains("a")).count()
val numBs = logData.filter(line => line.contains("b")).count()
println(s"Lines with a: $numAs, Lines with b: $numBs")
spark.stop()
}
}
如果我评论
//val numAs = logData.filter(line => line.contains("a")).count()
//val numBs = logData.filter(line => line.contains("b")).count()
//println(s"Lines with a: $numAs, Lines with b: $numBs")
Hello !
我在控制台中读得很清楚。
我运行每一行都没有错误main
。spark-shell
对应的python脚本提交成功
我想念什么?
解决方案
最后,它实际上是 Spark/Scala 版本的兼容性问题
从https://spark.apache.org/downloads.html可以阅读:
请注意,Spark 是使用 Scala 2.11预构建的,但版本 2.4.2 是使用 Scala 2.12 预构建的
我想念从 spark 的 2.4.2 版本中阅读和理解的内容。在快速启动台旁边:
scalaVersion := "2.12.8"
最后我检查了jars
我的 spark 安装目录,我发现:
scala-compiler-2.11.12.jar
scala-library-2.11.12.jar
...
所以我将我的更改built.sbt
为:
scalaVersion := "2.11.12"
并解决问题(至少这个问题)。
推荐阅读
- docker - EC2 Docker 和互联网连接
- mysql - 什么是正确的 sql 语法?
- oracle - 尝试在查询中引用 plsql 表时出现 Oracle pl/sql 问题
- python - Python套接字错误10054,连接被远程主机中断
- mysql - 查找过去 6 个月内有活动的用户
- laravel - Laravel 动态复选框错误:试图获取非对象的属性“id”
- python - 在幻灯片烧瓶中显示的磁环
- javascript - 在 Typescript 中,如何定义一个不带参数且不执行任何操作的 void 函数?
- powershell - Powershell - 如何查找指定类型的所有文件及其旁边的文件夹
- javascript - 打字稿真的向后兼容吗?