0

如何正确使用该list功能ffload来选择性地加载一部分ffdf

我读过很多次,可以有选择地加载 ff 数据帧的一部分,但似乎无法让它自己工作。

我的问题是我正在尝试与具有唯一 ID 列表的向量执行合并,但 ffdf 文件太大,我的计算机无法处理此合并。

到目前为止,我一直在尝试使用ffinfo来获取组成我的ffdf.

例如,我得到以下 ffdf 的“文件部分”列表:

ffinfo(file=paste(imp_tables_root_loc,table_name,sep=""))

wherepaste(imp_tables_root_loc,table_name,sep="")指定 ffdf 表及其位置

[1] "ffdf1590409e251b.ff" "ffdf159047426082.ff" "ffdf159058a426ab.ff" "ffdf1590410708c.ff"  "ffdf159022b49bf.ff" 
 [6] "ffdf1590174e5dec.ff" "ffdf159045d93226.ff" "ffdf159037f87280.ff" "ffdf159044ad3d39.ff" "ffdf15905224601a.ff"
[11] "ffdf159027936205.ff" "ffdf1590133841c8.ff" "ffdf15902d365cac.ff" "ffdf159065b4259.ff"  "ffdf15904a162908.ff"
[16] "ffdf15905529c1c.ff"  "ffdf1590eda1092.ff"  "ffdf1590ab65eb.ff"   "ffdf159048e74f82.ff"

然后我尝试通过调用 ffload:

ffload(file=paste(imp_tables_root_loc,table_name,sep=""),list="ffdf1590409e251b.ff")

但这会导致此错误:

ffload 错误(file = paste(imp_tables_root_loc, table_name, sep = ""), : not in ffarchive: "ffdf1590409e251b.ff",

4

1 回答 1

0

list: An optional vector of names selecting those objects to be restored (default NULL restores all)

因此,它允许您在ffsave多个时仅加载特定对象。IE

R> a = as.ffdf(data.frame(x = rnorm(10), y = rbinom(10, 5, .2)))
R> b = as.ffdf(data.frame(g = 1:15, h = rpois(15, 5)))
R> ffsave(a, b, file = "foo")
R> rm(list = ls())
R> ffload("foo", list = "a")
R> ls()
[1] "a"
R> rm(list = ls())
R> ffload("foo", list = "b")
R> ls()
[1] "b"

我不认为它允许你只加载一列ffdf

于 2013-08-01T03:20:12.810 回答