关于scala和spark版本冲突报错

获取版本对应

1.从spark官网可以获取
官网链接:https://spark.apache.org

Spark runs on Java 8, Python 2.7+/3.4+ and R 3.1+. For the Scala API,
Spark 2.4.5 uses Scala 2.12. You will need to use a compatible Scala
version (2.12.x).
2.从maven仓库也可以

在这里插入图片描述

因为我使用的Scala是2.10.6,而spark使用的是2.4.5,所以引起版本冲突,idea中报错:
Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.$conforms()Lscala/Predef$$less$colon$less;
at org.apache.spark.util.Utils$.getSystemProperties(Utils.scala:1767)
at org.apache.spark.SparkConf.loadFromSystemProperties(SparkConf.scala:76)
at org.apache.spark.SparkConf.<init>(SparkConf.scala:71)
at org.apache.spark.SparkConf.<init>(SparkConf.scala:58)
at ScalaSparkContext.getSparkContext(Test.scala:8)
at ScalaSparkContext.<init>(Test.scala:6)
at Test$.main(Test.scala:25)
at Test.main(Test.scala)
可以从Scala官网中下载对应版本
https://www.scala-lang.org
		不得不说,下载速度超级慢
		
我从网上找到一下方法可以较快的下载:
	http://downloads.typesafe.com/scala/2.12.10/scala-2.12.10.msi
	若是要下载别的版本只需要将版本号更改即可。

可以从官网中复制下载链接,使用迅雷大法下载。
Submit命令在Java和Scala版本Spark中主要用于提交Spark应用程序到集群运行,它们的基本语法和原理相似。然而,由于ScalaSpark的主要编程语言之一,Scala版本可能会提供更直接、简洁的API。以下是两者的一些区别: 1. **命令行接口**: - Java版本:你需要通过`spark-submit`脚本或者编写Java程序来创建一个`Driver`并提交任务。 - Scala版本Scala用户可以直接在`SparkShell`中使用`submit`函数,也可以在Scala程序中使用`SparkConf`和`SparkContext`等。 2. **代码风格**: - Scala:代码通常更为简洁,因为Scala支持隐式转换和模式匹配等功能,可以直接写出一些表达性强的代码。 - Java:Java代码可能需要更多的类型注解和显式操作,尽管最近的Java版本也引入了一些新特性如lambda表达式来改善这一点。 3. **API可用性**: - Scala API:Spark的核心功能在Scala中通常有更好的集成和支持,很多库和示例都是以Scala编写的。 - Java API:虽然Java API同样强大,但学习曲线相对陡峭一些,因为Scala API的设计思想更好地融入了Spark。 4. **性能和优化**: - Scala性能:因为Scala是JVM上的静态类型语言,理论上在某些情况下,Scala代码的执行速度可能略优于Java。 - Java的泛型:对于大型项目和性能敏感部分,Java的泛型处理可能更加底层和高效。 总结来说,Scala版本Spark提供了更好的交互性和更丰富的语法糖,而Java版本则适合对性能有极高要求或者已经习惯Java编程环境的开发者。不过,在实际操作中,两者都可以很好地完成任务提交。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hao难懂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值