【问题标题】:C stack usage error in R H2O when converting dataframe转换数据帧时 R H2O 中的 C 堆栈使用错误
【发布时间】:2019-02-04 19:43:13
【问题描述】:

我在 R 中使用 sparklyr 和 H2O 来实现开发一些 ML 模型。读取初始数据时出错。我使用spark_read_csv 提取数据,使用sdf_partition 设置分区,然后使用as_h2o_frame 定义一个H2O 数据框

df <- spark_read_csv(sc,
                     "frame_name",                                       
                     "aPathToData.csv")

partitions <- df %>% sdf_partition(training = 0.6, 
                               test_validate = 0.4,
                               seed=12)

train_set    <- as_h2o_frame(sc, 
                             partitions$training,
                             name="train_set")

这会返回错误:

错误:C 堆栈使用 38903392 太接近限制

我已经在一个小得多的数据集上成功运行了这个确切的代码:145 mb 与我当前的 csv 是 2.3 GB。不过,我有 32 GB 的内存,它似乎不是数据集的大小,我丢弃了大部分行并将其降低到 32 MB,仍然给出错误。必须是数据集独有的,而不是大小。

更新:错误是由于数据集中的列数造成的。当我在 spark 数据框中的列数超过 1689 的情况下运行 as_h2o_frame 时,我得到了错误。 1689 列或更少,没有错误。

【问题讨论】:

  • 您能列出您正在使用的所有不同软件包的版本号吗?谢谢!
  • 感谢劳伦的回复。 H2o 版本 3.16.0.2; sparklyr 版本 0.7.0; rsparkling 0.2.3

标签: r h2o sparklyr


【解决方案1】:

由于错误消息似乎来自 R,因此该错误更可能是 R 或 sparklyr 问题,而不是 H2O 中的错误。但是,如果您可以使用可重现的代码示例和日志(如果可能)将此问题发布到苏打水repo,则可以查看问题,并且更容易识别导致错误的包并将错误定向到正确的项目。

【讨论】:

    猜你喜欢
    • 2022-01-04
    • 2017-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 2021-11-28
    • 2019-04-23
    相关资源
    最近更新 更多