是否可以使用H2O的REST API创建H2OFrame,如果是这样的话?
我的主要目标是利用存储在H2O中的模型,以便对外部 H2O框架进行预测。
我需要能够从JSON外部生成这些H2OFrame(我想通过调用端点)
我阅读了API文档,但无法找到任何明确的解释。
我认为最接近的端点是
/3/CreateFrame创建随机数据和/3/ParseSetup
但我找不到任何可靠的教程。
答案 0 :(得分:3)
目前没有REST API端点可以将某些JSON记录直接转换为Frame
对象。因此,前进的唯一方法是先将数据写入CSV文件,然后使用POST /3/PostFile
将其上传到h2o,然后使用POST /3/Parse
进行解析。
(请注意,POST /3/PostFile
端点不在文档中。这是因为它来自其他端点handled separately。基本上,它是一个端点,它在正文中获取任意文件发布请求,并将其保存为"原始数据文件")。
在Python或R中,同样的工作要容易得多:例如,为了将一些数据集上传到h2o进行评分,你只需要说
df = h2o.H2OFrame(plaindata)
答案 1 :(得分:0)
我已经在我的项目中做了类似的事情。因为,没有REST API端点可以直接将JSON记录转换为Frame对象。所以,我正在做以下事情: -
1-对于模型构建: - 首先传输数据并将数据写入运行h2o服务器或集群的CSV文件中。然后使用POST / 3 / ImportFiles将数据导入h2o,然后解析并构建模型等。我正在使用h2o-bindings API(RESTful API)。由于我有大量数据(数百MB到几GB),所以我使用/ 3 / ImportFiles而不是POST / 3 / PostFile,因为后者上传大数据的速度很慢。
2-对于模型评分或预测: - 我正在使用Model MOJO和POJO。在您的情况下,如果您的数据不大,则使用@Pasha建议的POST / 3 / PostFile。但是,根据h2o文档,建议在生产环境中使用MOJO或POJO进行模型评分或预测,而不是直接调用h2o服务器/集群。 MOJO和POJO是线程安全的,因此您可以使用多线程来扩展它以进行并发请求。