我在R中使用sparklyr和H2O来实现开发一些ML模型。读取初始数据时出现错误。我使用spark_read_csv
提取数据,使用sdf_partition
设置分区,然后使用as_h2o_frame
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,仍然给出了错误。对于数据集,必须是大小以外的唯一内容。
更新:该错误是由于数据集中的列数引起的。当我在火花数据框中的多个列上运行as_h2o_frame
超过1689时,出现错误。 1689或更少的列,没有错误。
答案 0 :(得分:1)
由于错误消息似乎来自R,因此错误很可能是R或sparklyr问题,而不是H2O中的错误。但是,如果您可以使用可复制的代码示例和日志(如果可能)将问题发布到苏打水repo上,则可以对问题进行审核,这样可以更轻松地确定哪个包导致了错误并直接进行处理。错误的正确项目。