在火花2.1上运行scala spark 1.6工作失败

时间:2018-06-12 02:09:54

标签: scala apache-spark apache-spark-sql

我有一个需要每晚跑步的火花工作。但是,我不得不从1.6更新为spark 2.1。现在我收到一个错误:

java.lang.NoSuchMethodError:org / apache / spark / sql / DataFrameReader.load()Lorg / apache / spark / sql / DataFrame; (从文件加载:/usr/local/src/spark21master/spark-2.1.2-bin-2.7.3/jars/spark-sql_2.11-2.1.2.jar by sun.misc.Launcher$AppClassLoader@305de464)从类com.ibm.cit.tennis.ServiceStat $调用(从文件加载:/ tmp / spark-21-ego-master / work / spark-driver-8073f84b-6c09-4d7d-83f5-2c99527eaa1c / spark-service-stat_2 .11-1.0.jar由org.apache.spark.util.MutableURLClassLoader@ee80a89b)。

在我的SBT构建文件中,我有以下配置:

scalaVersion := "2.11.8"
val sparkVersion = "2.1.2"

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % sparkVersion % sparkDependencyScope,
  "org.apache.spark" %% "spark-sql" % sparkVersion % sparkDependencyScope,
  "org.apache.spark" %% "spark-mllib" % sparkVersion % sparkDependencyScope,
  "org.apache.spark" %% "spark-streaming" % sparkVersion % sparkDependencyScope,
  "org.apache.spark" %% "spark-hive" % sparkVersion % sparkDependencyScope,
  "org.apache.spark" %% "spark-repl" % sparkVersion % sparkDependencyScope
  "org.apache.spark" %% "spark-graphx" % sparkVersion % sparkDependencyScope
)

我正在使用Scala 2.11.8和Java 1.8.0构建。

任何帮助将不胜感激, 亚伦。

2 个答案:

答案 0 :(得分:0)

NoSuchMethodError异常是版本不匹配的标志。我怀疑你还在尝试使用Spark 1.6来启动你的应用程序。目前尚不清楚示例中sparkDependencyScope的值是多少。通常,Spark依赖项是使用"provided"作用域指定的,即已安装的Spark运行时版本。

"org.apache.spark" %% "spark-core" % sparkVersion % "provided"

尝试跑步 spark-submit --version确定使用哪个Spark启动器版本。如果它不是您所期望的,请确保已安装Spark 2.1.2并且已安装在PATH中。

答案 1 :(得分:0)

问题已经解决。这些库被缓存在一个环境中。在创建新环境后,SBT能够提取最新资源。

另外,我不得不补充:

 conf.set("spark.sql.crossJoin.enabled", "true")