我使用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:找不到密钥:org.apache.spark.ml.feature.Tokenizer在最后一行。
当我快速搜索时,我发现mleap不支持所有变形金刚。但我无法找到详尽的清单。
如何确定我使用的变压器是否实际上不受支持或是否存在其他错误。
答案 0 :(得分:0)
我是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中提出问题,我们可以帮助您从那里进行调试。