加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 是否可以在Spark 1.3.0中使用json4s 3.2.11?

发布时间:2020-12-16 09:24:30 所属栏目:安全 来源:网络整理
导读: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"scalaV
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"`

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")

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}")
  }
}

sbt 0.13.7 sbt-assembly 0.13.0
Scala 2.10.4

有没有办法强制使用3.2.11版本?

解决方法

我们遇到了类似于Necro描述的问题,但是在构建组装jar时从3.2.11降级到3.2.10并没有解决它.我们最终通过在作业程序集jar中着色3.2.11版本来解决它(使用Spark 1.3.1):

assemblyShadeRules in assembly := Seq(
  ShadeRule.rename("org.json4s.**" -> "shaded.json4s.@1").inAll
)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读