0

我使用 Spark 2.1.0 和 Scala 2.11.8。

我正在尝试在 apache spark 中构建一个 twitter 情绪分析模型并使用MLeap 为其提供服务。

当我在不使用 mleap 的情况下运行模型时,一切都很顺利。仅当我尝试以 mleap 的序列化格式保存模型时才会出现问题,以便稍后使用 mleap 为模型提供服务。

这是引发错误的行 -

val modelSavePath = "/tmp/sampleapp/model-mleap/" 

val pipelineConfig = json.get("PipelineConfig").get.asInstanceOf[Map[String, Any]]
val loaderConfig = json.get("LoaderConfig").get.asInstanceOf[Map[String, Any]]
val loaderPath = loaderConfig
    .get("DataLocation")
    .get
    .asInstanceOf[String]
var data = sqlContext.read.format("com.databricks.spark.csv").
                 option("header", "true").
                 option("delimiter", "\t").
                 option("inferSchema", "true").
                 load(loaderPath)

val pipeline = Pipeline(pipelineConfig)

val model = pipeline.fit(data)
val mleapPipeline: Transformer = model

我在最后一行得到 java.util.NoSuchElementException: key not found: org.apache.spark.ml.feature.Tokenizer。

当我快速搜索时,我发现 mleap 并不支持所有的转换器。但我找不到详尽的清单。

如何确定我正在使用的转换器是否实际上不受支持或是否存在其他错误。

4

1 回答 1

2

我是 MLeap 的创建者之一,我们确实支持 Tokenizer!我很好奇,您要使用哪个版本的 MLeap?我认为您可能正在查看 TrueCar 的过时代码库,请在此处查看我们的新代码库:

https://github.com/combust/mleap

我们在这里也有相当完整的文档,包括支持的转换器的完整列表:

文档: http: //mleap-docs.combust.ml/

变压器列表: http: //mleap-docs.combust.ml/core-concepts/transformers/support.html

我希望这会有所帮助,如果仍然无法正常工作,请在 github 中提交问题,我们可以帮助您从那里进行调试。

于 2017-05-30T19:13:11.477 回答