【发布时间】: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