我正在使用R中包含42,457行和785列的数据集。第一列是二进制响应变量(称为label
),其余列是二进制功能。H2O数据框中的列限制?
我试图使用rsparkling
(描述为here)来拟合逻辑回归模型,但得到错误。我将其追溯到将表格的Spark版本转换为H2O数据框架的步骤。
这里是我用来测试的功能。的Spark实例sc
启动并运行和df
是原始数据设置为一个标准的R数据帧:
load_h2o <- function(df, rows = nrow(df), cols = ncol(df)) {
df <- df[1:rows, 1:cols]
copy_to(sc, df, "df", overwrite = TRUE)
df_tbl <- tbl(sc, "df")
h2o_tbl <- as_h2o_frame(sc, df_tbl, strict_version_check=FALSE)
return(h2o_tbl)
}
的df$label
头是1 1 1 0 0 0
。然而,如果我加载完整的数据集,即load_h2o(raw_data)
,得到的label
列的头部是0 0 0 0 0 0
;事实上,H2O数据帧中的所有值都是0.如果我将列数限制为200(即load_h2o(raw_data, cols = 200)
),那么生成的H2O数据帧包含所有预期的数据。如果cols = 201
,我们回到全零。
最后,如果我从h2o::h2o.importFile
直接从磁盘加载数据集,那么完整的数据集就会毫无问题地出现,而且我能够适应逻辑回归。不过,我希望能够从R数据框中加载它,以便在包中分发对象。
此工作流程的最大列数是否有限制?