java.lang.AssertionError:断言失败:此操作仅支持二进制逻辑回归
我正在尝试在mleap中序列化一个spark管道。
我在我的管道中使用Tokenizer,HashingTF和LogisticRegression。
当我尝试序列化我的管道时,我得到上述错误。 这是我用来序列化管道的代码 -
val pipeline = Pipeline(pipelineConfig)
val model = pipeline.fit(data)
(for(bf <- managed(BundleFile("jar:file:/tmp/abc.model.twitter.zip"))) yield {
model.writeBundle.format(SerializationFormat.Json).save(bf).get
}).tried.get
sc.stop()
根据文档,mleap支持LR。所以我完全不知道我在这里做错了什么。
答案 0 :(得分:1)
yashdosi,
MLeap默认支持Spark 2.0(对不起,这没有很好的记录)。在2.0中,仅支持二进制逻辑回归。随着2.1的引入,存在多项Logistic回归。由于MLeap旨在支持2.0.0及更高版本,因此我们内置了一种机制来选择您正在使用的Spark版本(目前MLeap支持2.0和2.1,但默认为2.0)。
尝试将此行添加到资源目录中的application.conf
文件中,它将让MLeap知道在序列化时使用Spark 2.1变换器:
// application.conf in src/main/resources
ml.combust.mleap.spark.registry.default = ${ml.combust.mleap.spark.registry.v21}