写入/读取大型R dataframes / data.tables-附录。
在使用普查数据发布我最近的博客以说明利用fst和feather文件格式处理R中的“大”数据帧之后,我意识到我可以使分析更进一步。
回想一下我当时对“关于美国家庭和个人(人口)的人口统计信息的描述。最终的家庭和人口数据存储区对于台式机计算而言是相当大的:家庭包含将近750万条记录和233个属性,而人口则不到1 580万”案例和286个变量。”
除了使用两个单独的数据框/数据表之外,还可以考虑家庭和人口的合并。对于每个家庭,都有一个或多个人口记录;每个人口记录又是针对一个并且只有一个家庭的。确实,有一个属性serialno可用于将家庭和人口连接到结果数据表。该表包含近1580万条记录和500多个属性-消耗的内存超过32GB。对于桌面R来说,这是相当大的。
因此,尽管内存中存在R限制,但我只是不得不尝试产生这样的结构,然后编写fst和Feather文件以备后用。las,尝试在我的64GB Wintel笔记本电脑上生成超大data.table失败,并出现内存分配错误(R并不是最高效的内存管理器。)。我的回复?获取联接以在128GB笔记本电脑上工作,然后将结果数据“保存”到fst和feather文件中。生成后,将这些文件传输到64GB的计算机上以查看是否可以读取。事实证明,这种方法效果很好。
本笔记本的其余部分将注意力集中在128GB RAM和64GB RAM计算机之间,在前者上生成联接的data.table,并在后者上演示来自fst和feather文件的数据访问。一旦构建了盛大的fst文件,就可以将其重新部署到较小的存储计算机上,并像具有投影和过滤功能的内存数据表一样进行访问。性能出色。
1


雷达卡



京公网安备 11010802022788号







