首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala/火花: NoClassDefFoundError: net/liftweb/json/Formats

Scala/火花: NoClassDefFoundError: net/liftweb/json/Formats
EN

Stack Overflow用户
提问于 2016-09-21 16:35:24
回答 1查看 1.6K关注 0票数 1

我正试图从Scala对象中创建一个JSON字符串,就像描述的这里一样。

我有以下代码:

代码语言:javascript
复制
import scala.collection.mutable._
import net.liftweb.json._
import net.liftweb.json.Serialization.write

case class Person(name: String, address: Address)
case class Address(city: String, state: String)

object LiftJsonTest extends App {

  val p = Person("Alvin Alexander", Address("Talkeetna", "AK"))

  // create a JSON string from the Person, then print it
  implicit val formats = DefaultFormats
  val jsonString = write(p)
  println(jsonString)

}

我的build.sbt文件包含以下内容:

代码语言:javascript
复制
libraryDependencies += "net.liftweb" %% "lift-json" % "2.5+"

当我用sbt package构建时,它是成功的。

但是,当我尝试将它作为火花作业运行时,如下所示:

代码语言:javascript
复制
spark-submit \
  --packages com.amazonaws:aws-java-sdk-pom:1.10.34,org.apache.hadoop:hadoop-aws:2.6.0,net.liftweb:lift-json:2.5+ \
  --class "com.foo.MyClass" \
  --master local[4] \
  target/scala-2.10/my-app_2.10-0.0.1.jar

我知道这个错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.RuntimeException: [unresolved dependency: net.liftweb#lift-json;2.5+: not found]
    at org.apache.spark.deploy.SparkSubmitUtils$.resolveMavenCoordinates(SparkSubmit.scala:1068)
    at org.apache.spark.deploy.SparkSubmit$.prepareSubmitEnvironment(SparkSubmit.scala:287)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:154)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

我在这里做错什么了?net.liftweb:lift-json:2.5+在我的packages论点中是否不正确?我需要在build.sbt中添加一个解析器吗?

EN

回答 1

Stack Overflow用户

发布于 2016-09-22 11:19:02

带--包裹。

2.5+在您的build.sbt中是常春藤版本匹配器语法,而不是Maven坐标所需的实际工件版本。显然,spark-submit并没有使用常春藤来解决问题(我认为如果这样做了,那将是令人惊讶的;您的应用程序可能会突然停止工作,因为发布了一个新的依赖版本)。因此,在您的情况下,您需要找到2.5+解析的版本,例如使用https://github.com/jrudolph/sbt-dependency-graph (或试图在show dependencyClasspath中找到它)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39622017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档