是否可以将Spark ML CrossValidatorModel应用于Flink Streaming数据流?
问题描述:
Flink是流式传输的明显选择,但Spark
已经成熟ML pipelines
,是否可以在火花中训练模型,将其保存为CrossValidatorModel
并将其部署到Flink
中的流式数据?全部在scala
?是否可以将Spark ML CrossValidatorModel应用于Flink Streaming数据流?
答
Flink目前(2017年3月,Flink 1.2)不支持为流提供机器学习模型。但是,这是社区目前正在讨论的功能。
随意在Flink提交JIRA以请求该功能。
在Flink提供官方支持之前,可能还有其他方式将模型加载到Flink中。 (免责声明:我真的不是Spark ML的专家)。 从JavaDocs看来,CrossValidatorModel
有一个方法write()
,它返回MLWriter
和save(String path)
方法。
您可以在Spark中构建模型,使用MLWriter
保存模型,然后使用MLReader
在Flink中再次加载并在流中使用它。
Flink是否支持读取Spark模型?如果不是,Spark阅读器和'transform'都需要一个功能性的Spark群集...导出为某种独立于平台的格式可能是更好的选择。 – zero323
回答你的问题:not yet :)你能推荐一个独立的格式吗? –
[(J)PMML](https://github.com/jpmml/jpmml-spark)上次检查时工作得相当好。 [MLeap](https://github.com/combust/mleap)很有趣,但我不确定它是如何与Flink一起使用的。这一切我知道现有的尝试。 [PFA](http://dmg.org/pfa/)很有前途,并且有[初始Java实现](https://github.com/opendatagroup/hadrian)。 – zero323