无法在 mleap 中序列化逻辑回归

Unable to serialize logistic regressing in mleap

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。所以我完全不知道我在这里可能做错了什么。

亚什多西,

MLeap 默认支持 Spark 2.0(抱歉,这没有很好的记录)。在 2.0 中,仅支持二元逻辑回归。随着 2.1 的引入,出现了多项逻辑回归。因为 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}