如何使用 H2O REST 创建 H2OFrame API

How to create a H2OFrame using H2O REST API

是否可以使用 H2O 的 REST 创建 H2OFrame API,如果可以,如何创建?

我的主要 objective 是利用存储在 H2O 内部的模型来预测 外部 H2OFrame。

我需要能够从 JSON 外部生成那些 H2OFrame(我想通过调用端点)

我阅读了 API 文档,但找不到任何明确的解释。

我认为最近的端点是

/3/CreateFrame which creates random data and /3/ParseSetup

但我找不到任何可靠的教程。

目前没有 REST API 端点可以直接将某些 JSON 记录转换为 Frame 对象。因此,您唯一的前进方式是首先将数据写入 CSV 文件,然后使用 POST /3/PostFile 将其上传到 h2o,然后使用 POST /3/Parse.

进行解析

(请注意,POST /3/PostFile 端点不在文档中。这是因为它是来自其他端点的 handled separately。基本上,它是一个在正文中获取任意文件的端点post请求,并保存为"raw data file").

相同的工作在 Python 或 R 中更容易完成:例如,为了将一些数据集上传到 h2o 中进行评分,您只需要说

df = h2o.H2OFrame(plaindata)

我已经在我的项目中做了类似的事情。因为,没有 REST API 端点可以直接将 JSON 记录转换为 Frame 对象。所以,我正在做以下事情:-

1- 对于模型构建:- 首先将数据传输并写入 h2o 服务器或集群所在的 CSV 文件 running.Then 使用 POST /3/ImportFiles 将数据导入 h2o,以及然后解析并构建模型等。我正在为它使用 h2o-bindings APIs (RESTful APIs)。由于我有大数据(数百 MB 到几 GB),所以我使用 /3/ImportFiles 代替 POST /3/PostFile 因为后者上传大数据很慢。

2- 对于模型评分或预测:- 我正在使用模型 MOJO 和 POJO。在您的情况下,如果您的数据不大,则按照@Pasha 的建议使用 POST /3/PostFile 。但是,根据 h2o 文档,建议在生产环境中使用 MOJO 或 POJO 进行模型评分或预测,而不是直接调用 h2o server/cluster。 MOJO 和 POJO 是线程安全的,因此您可以使用多线程处理并发请求来扩展它。