转换数据帧时R H2O中的C堆栈使用错误

问题描述 投票:0回答:1

我在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 vs我当前的csv,即2.3 gb。尽管如此,我有32 GB的内存,它似乎不是数据集的大小,我丢弃了大部分行并将其降低到32mb,仍然给出了错误。必须是除大小之外的数据集的唯一内容。

更新:错误是由数据集中的列数引起的。当我在1689年的火花数据框中运行带有多列的as_h2o_frame时,我得到了错误。 1689或更少的列,没有错误。

r h2o sparklyr
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.