Scala 尝试保存PipelineModel时出现json4s NoSuchMethodError

Scala 尝试保存PipelineModel时出现json4s NoSuchMethodError,scala,apache-spark,json4s,Scala,Apache Spark,Json4s,我正在尝试通过save方法将sparkPipelineModel保存到hdfs的简单操作。 即使尝试运行spark自己的示例,我也会遇到以下异常() 我的代码相当简单,只尝试使用spark.mlPipelineStages 包org.apache.spark.ml.util import org.apache.spark.ml._ import org.apache.spark.ml.feature._ import org.scalatest.FunSuite class Foo exte

我正在尝试通过
save
方法将spark
PipelineModel
保存到hdfs的简单操作。 即使尝试运行spark自己的示例,我也会遇到以下异常()

我的代码相当简单,只尝试使用
spark.ml
PipelineStage
s 包org.apache.spark.ml.util

import org.apache.spark.ml._
import org.apache.spark.ml.feature._
import org.scalatest.FunSuite


class Foo extends FunSuite {

... create spark context/session/sql context somewhere ...

    test("bar") {
        import sqlContext.implicits._
        val df = sparkContext.parallelize(
        (1, 4, "TH") ::
        (2, 5, "TH") ::
        (3, 6, "TH") ::
        (4, 7, "TH") ::
        (5, 8, "US") ::
        (6, 9, "US") :: Nil).toDF("id", "x", "a")

        val tr0 = new StringIndexer().setInputCol("a").setOutputCol("a_ind")
        val tr1 = new OneHotEncoder().setInputCol("a_ind").setOutputCol("a_vec").setDropLast(false)
        val tr2 = new PolynomialExpansion().setDegree(3).setInputCol("x").setOutputCol("x_vec")
        val tr3 = new VectorAssembler().setInputCols(Array("x_vec", "a_vec"))
        val pipe = new Pipeline().setStages(Array(tr0, tr1, tr2, tr3)).fit(df)

        pipe.write.overwrite().save("/tmp/foobar")
    }

}
例外消息是:

org.json4s.Formats.emptyValueStrategy()Lorg/json4s/prefs/EmptyValueStrategy;
java.lang.NoSuchMethodError: org.json4s.Formats.emptyValueStrategy()Lorg/json4s/prefs/EmptyValueStrategy;
无论您尝试创建什么管道,这都会重复,这可能与什么有关吗?
发生了什么事?

问题解决了,由于某种原因,json4s版本3.2.11没有被使用。一旦修好了,一切都很好

问题解决后,由于某种原因,没有使用json4s版本3.2.11。一旦修好了,一切都很好

问题解决后,json4s版本3.2.11由于某种原因未被使用。问题解决后,json4s版本3.2.11由于某种原因没有被使用。一旦修好了,一切都很好。