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
方法将sparkPipelineModel
保存到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由于某种原因没有被使用。一旦修好了,一切都很好。