尝试保存PipelineModel

时间:2017-01-27 02:06:04

标签: scala apache-spark json4s

我正在尝试通过PipelineModel方法执行向hdfs保存spark save的简单操作。 即使在尝试运行spark自己的示例(see here

时,我也会遇到以下异常

我的代码相当简单,只尝试使用spark.ml PipelineStage 包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;

无论您尝试创建哪个管道,都会重复此操作,它是否与this相关? 发生了什么事?

1 个答案:

答案 0 :(得分:0)

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