我正在尝试通过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相关? 发生了什么事?
答案 0 :(得分:0)
问题解决了,json4s版本3.2.11由于某种原因未被使用。一旦修好一切都很好。 -