如何动态创建Spark ML管道

时间:2017-01-07 19:06:38

标签: json web-services apache-spark-ml

我正在构建一个简单的Web服务,用户可以在UI中轻松构建Spark ML管道并保留它,以便用户可以检索已保存的管道并开始训练它。

这是一个想法:

  1. 用户可以选择模型和评估者并填写参数以在UI中形成管道
  2. 用户可以指定输出目录以保存此管道
  3. 用户点击保存,管道将在指定目录下创建
  4. 在头脑风暴之后,我得到了以下实施理念:

    1. 启动两个服务器:Web服务器和Spark群集
    2. 当用户点击“保存”按钮时,以JSON格式导出用户定义的管道元数据并将其发送到Spark群集
    3. Spark群集获取JSON并在SparkContext
    4. 中实例化管道
    5. 使用Spark ML Persistence
    6. 将实例化的管道保存在指定的目录中

      我现在面临的挑战是如何将管道元数据转换并导出到JSON,从而如何从Spark中的JSON解析和实例化管道(在步骤2和3中)

      我相信我自己可以写一个简单的converterparser,但我只是想知道是否有任何我可以用来启动我的库或框架。

      更新

      因为前端没有涉及代码,所以我不能使用Spark的ML持久性或MLeap。

2 个答案:

答案 0 :(得分:0)

如果您使用spark ml的格式从Web服务器保存json,您只需加载它即可创建管道。查看序列化的json和生成它的代码,这样做似乎很简单。

答案 1 :(得分:0)

看看MLeap,它支持大多数Spark ML管道功能变换器和估算器。对于非常大的模型(即随机森林),您可以选择序列化为json或protobuf