【发布时间】:2017-06-21 18:22:05
【问题描述】:
假设我有一个返回数据的函数“getData()”(将其视为数据流)。现在我需要用这些数据形成一个 h2o 数据框。仅当之前的数据框中不存在它们时,我才需要将它们作为新行插入。
一个明显的方法是:
- 有一个全局 h2o 数据框
- 根据到达的数据创建一个 h2o 数据框(1 行)。 (我正在使用 as.h2o())
- 检查它是否已经存在于全局数据框中(使用 h2o.which() 或任何其他函数)
- 如果不存在,则将其添加到数据框中(使用 h2o.rbind())
上述解决方案太慢了。每次数据到达(第二步)时创建 h2o 数据帧需要太多时间。 (仅在小数据集上测试)
我还考虑将它们存储在 R 数据框中,然后在一段时间后使用 h2o.rbind()。
最好的(时间是优先的)方法是什么?
【问题讨论】:
-
这篇文章需要一个代码示例和一些基准测试。你是如何创建 H2O 框架的?创建一个框架应该不会花费太多时间——第 2 步是这里真正的瓶颈。我怀疑添加另一个创建 R data.frame 的步骤会降低速度,但这就是为什么代码和基准测试是真正回答您的问题的唯一方法。
-
@ErinLeDell 我已经编辑了这个问题。在小数据集(大约 500 行增量)上,创建 h2o 数据框似乎比搜索和绑定花费更多时间。
-
好的,谢谢,现在更有意义了。
getData()返回什么,R 中的 1 行 data.frame? -
@ErinLeDell 是的。