【发布时间】:2017-05-21 08:34:54
【问题描述】:
我正在研究 h2o 框架以使用其额外的机器学习工具。我只是好奇 H20 数据帧和 Spark RDD 之间有什么区别。 h2o 数据帧是否可以像 Spark RDD 一样被缓存或持久化?
【问题讨论】:
标签: h2o
我正在研究 h2o 框架以使用其额外的机器学习工具。我只是好奇 H20 数据帧和 Spark RDD 之间有什么区别。 h2o 数据帧是否可以像 Spark RDD 一样被缓存或持久化?
【问题讨论】:
标签: h2o
H2O 帧并不懒惰,这与 Spark 的数据结构相反。因此,当我们将整个帧加载到内存中时,不需要显式缓存/持久化。如果您的数据集大于集群的内存,这可能会出现问题,但出于性能原因,我们会这样做。在 Spark 中,无论如何您都会缓存 RDD 以进行机器学习。 H2O 框架有 2 个要求:
H2O 帧就像 RDD 一样是完全分布的,并且只有部分帧位于每个节点上。我们的大多数算法都利用了数据局部性(即每个节点仅使用存储在其上的行进行计算),但您也可以随机排列数据,以便每个节点都使用整个帧。
在将 RDD 转换为 H2O 帧时,我们将整个数据具体化到内存中。反之则没有内存开销,因为我们只是在遍历 H2O 帧。
H2O 帧不如 RDD 通用,但由于它我们可以高度压缩内存中的数据。
【讨论】: