Ale*_*iev 5 scala sbt json4s sbt-assembly apache-spark
Spark依赖于json4s 3.2.10,但是这个版本有几个bug,我需要使用3.2.11.我在build.sbt中添加了json4s-native 3.2.11依赖,所有编译都很好.但是当我点火提交我的JAR时,它为我提供了3.2.10.
build.sbt
import sbt.Keys._
name := "sparkapp"
version := "1.0"
scalaVersion := "2.10.4"
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.3.0" % "provided"
libraryDependencies += "org.json4s" %% "json4s-native" % "3.2.11"`
Run Code Online (Sandbox Code Playgroud)
plugins.sbt
logLevel := Level.Warn
resolvers += Resolver.url("artifactory", url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")
Run Code Online (Sandbox Code Playgroud)
App1.scala
import org.apache.spark.SparkConf
import org.apache.spark.rdd.RDD
import org.apache.spark.{Logging, SparkConf, SparkContext}
import org.apache.spark.SparkContext._
object App1 extends Logging {
def main(args: Array[String]) = {
val conf = new SparkConf().setAppName("App1")
val sc = new SparkContext(conf)
println(s"json4s version: ${org.json4s.BuildInfo.version.toString}")
}
}
Run Code Online (Sandbox Code Playgroud)
sbt 0.13.7 + sbt-assembly 0.13.0 Scala 2.10.4
有没有办法强制使用3.2.11版本?
这不是您问题的答案,但在搜索我的问题时出现了这个问题。我在 json4s 的“渲染”中的formats.emptyValueStrategy.replaceEmpty(value) 中收到 NoSuchMethod 异常。原因是我使用 3.2.11 进行构建,但 Spark 正在链接 3.2.10。我降级到 3.2.10,问题就消失了。您的问题帮助我了解了发生的情况(Spark 正在链接 json4s 的冲突版本),并且我能够解决该问题,所以谢谢。
| 归档时间: |
|
| 查看次数: |
1330 次 |
| 最近记录: |