【问题标题】:Differences between H20 dataframes and Spark RDDH20 数据帧和 Spark RDD 的区别
【发布时间】:2017-05-21 08:34:54
【问题描述】:

我正在研究 h2o 框架以使用其额外的机器学习工具。我只是好奇 H20 数据帧和 Spark RDD 之间有什么区别。 h2o 数据帧是否可以像 Spark RDD 一样被缓存或持久化?

【问题讨论】:

    标签: h2o


    【解决方案1】:

    H2O 帧并不懒惰,这与 Spark 的数据结构相反。因此,当我们将整个帧加载到内存中时,不需要显式缓存/持久化。如果您的数据集大于集群的内存,这可能会出现问题,但出于性能原因,我们会这样做。在 Spark 中,无论如何您都会缓存 RDD 以进行机器学习。 H2O 框架有 2 个要求:

    • 集群总内存必须足够大以容纳整个帧
    • 帧的单行必须完全适合每台机器(我们不按列分配帧,仅按行分配帧,这意味着我们取 X 行、一个块,并将它们全部放在单个节点上)李>

    H2O 帧就像 RDD 一样是完全分布的,并且只有部分帧位于每个节点上。我们的大多数算法都利用了数据局部性(即每个节点仅使用存储在其上的行进行计算),但您也可以随机排列数据,以便每个节点都使用整个帧。

    在将 RDD 转换为 H2O 帧时,我们将整个数据具体化到内存中。反之则没有内存开销,因为我们只是在遍历 H2O 帧。

    H2O 帧不如 RDD 通用,但由于它我们可以高度压缩内存中的数据。

    【讨论】:

      猜你喜欢
      • 2018-07-11
      • 2016-09-26
      • 1970-01-01
      • 2016-05-27
      • 2016-08-02
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多