【问题标题】:How to use the list feature in ffload to selectively load an ffdf?如何使用 ffload 中的列表功能来选择性地加载 ffdf?
【发布时间】:2013-08-01 19:21:39
【问题描述】:

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

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

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

到目前为止,我一直在尝试使用ffinfo 来获取组成我的ffdf 的不同部分的列表。

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

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

paste(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(file=paste(imp_tables_root_loc,table_name,sep=""),list="ffdf1590409e251b.ff")

但这会导致这个错误:

ffload(file = paste(imp_tables_root_loc, table_name, sep = ""), : 不在 ffarchive: "ffdf1590409e251b.ff",

【问题讨论】:

    标签: r list flat-file ff


    【解决方案1】:

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

    所以当你ffsave'd 多个时,它只允许你加载一个特定的对象。即

    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 的一列

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-30
      • 2020-10-06
      • 2011-06-29
      • 2017-02-07
      • 1970-01-01
      • 2021-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多