火花与h2o和苏打水之间的区别

时间:2017-04-05 16:08:15

标签: h2o sparkling-water

我对苏打水有一些疑问或怀疑,为什么需要它。

让我们假设我有一个生成的h2o模型,包含二进制和pojo。

现在我想将模型部署到生产环境中,并且可以选择使用pojo和二进制(苏打水)。

  1. 我应该使用哪一个?带有二元的pojo或苏打水的直接火花。
  2. 当我们可以使用pojo和spark本身轻松部署模型时,什么是苏打水的确切用途?
  3. 只有在必须训练大量数据模型时才需要苏打水吗?或者也可以在模型的PROD部署中使用。
  4. 示例:https://github.com/h2oai/h2o-droplets/blob/master/h2o-pojo-on-spark-droplet/src/main/scala/examples/PojoExample.scala

    使用spark来运行pojo模型。

    示例:https://github.com/h2oai/h2o-droplets/blob/master/sparkling-water-droplet/src/main/scala/water/droplets/SparklingWaterDroplet.scala

    火车/在苏打水中运行模型。

    苏打水h2o比普通火花有什么优势?

1 个答案:

答案 0 :(得分:7)

  1. 我应该使用哪一个?带有二元的pojo或苏打水的直接火花。

    • 没有'权利'回答,这取决于你的用例。听起来你想要的是Spark中的POJO / MOJO,所以你可以在没有增加H2O集群依赖性的情况下进行评分。
  2. 当我们可以使用pojo和spark本身轻松部署模型时,什么是苏打水的确切用途?

    • Sparkling Water的确切用途是在Spark环境中提供H2O。这对于培训特别有用:您可以利用Spark的众多数据连接器,修改功能等.POJO / MOJO + Spark足以支持评分
  3. 只有在必须训练大量数据模型时才需要苏打水吗?或者它也可以用于模型的PROD部署。

    • 当你想在一个与Spark生态系统很好地搭配的环境中利用H2O算法时,需要苏打水。
  4. 如果将模型放入"生产"意味着总是在"评分暴露为REST端点或类似情况:POJO / MOJO是您想要的方式(H2O集群不具备高可用性)。您需要确保自己正确处理传入数据。

    如果您正在进行批量评分,无论是夜间还是其他方式,那么使用二进制模型w / Sparkling Water可能是有意义的,因为解析传入的数据变得微不足道(asH2OFrame(..))并且评分很容易,因为predict()< / p>