Flink是流处理的明显选择,然而Spark
拥有成熟的ML pipelines
,是否可以先在Spark中训练模型,将其保存为CrossValidatorModel
,然后部署到Flink
中的流数据中?全部使用scala
语言?
回答:
Flink目前(2017年3月,Flink 1.2版本)还不支持在流上服务机器学习模型。然而,这是社区目前正在讨论的一个功能。
您可以提交一个JIRA请求,以在Flink中添加此功能。
在Flink正式支持之前,可能有其他方法将模型加载到Flink中。(免责声明:我对Spark ML并不专业)。根据Java文档,CrossValidatorModel
似乎有一个write()
方法,该方法返回一个带有save(String path)
方法的MLWriter
。
您可以在Spark中构建模型,使用MLWriter
保存模型,然后在Flink中使用MLReader
再次加载并在流中使用它。