scala的兼容性是小版本内的兼容,2.11.X与2.12.X之间是不兼容的,这点让我感到很惊讶和诧异,甚至想放弃学习scala,直接采用java开发spark,一方面java的稳定性与活跃程度远大于scala,另一方面学习新的东西带来的学习成本和风险需要个人甚至团队共担,何况团队的学习意愿也比较难以调节。
回归正题,兼容性问题在IDEA打开Project Structure>Project Settings>Libraries,检查scala-sdk与scala-lang的版本是否同属于同一个小版本,若否,则修改为一致即可,以下方式根据自身情况二选一。
scala-sdk版本修改:
点击“-”,删除现有版本,点击“+”,添加Scala SDK版本(若无其他版本,移步Project Structure>Platform Settings>Global Settings,添加Scala SDK版本)
scala-lang版本修改:
修改pom文件依赖的sprak版本依赖的scala版本:
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
com.paic.bankcloud
SparkAPP
jar
4.0.0
1.0.0
UTF-8
1.8
2.4.4
2.12
org.apache.spark
spark-core_${scala.version}
${spark.version}
org.apache.spark
spark-streaming_${scala.version}
${spark.version}
org.apache.spark
spark-sql_${scala.version}
${spark.version}
org.apache.spark
spark-hive_${scala.version}
${spark.version}
org.apache.spark
spark-mllib_${scala.version}
${spark.version}
org.apache.spark
spark-graphx_${scala.version}
${spark.version}
org.scala-tools
maven-scala-plugin
2.15.2
compile
testCompile
maven-compiler-plugin
3.6.0
1.8
1.8
org.apache.maven.plugins
maven-surefire-plugin
2.20
org.apache.maven.plugins
maven-assembly-plugin
3.0.0
scala.Hello
jar-with-dependencies
make-assembly
package
single