You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R中存储1.27亿行超大dataframe的最优存储格式选择咨询

大数据量DataFrame存储方案(R语言)

问题背景

CSV写入失败属于正常情况:CSV是纯文本格式,写入1.27亿行数据时需要进行大量文本转换操作,中间临时内存开销会远高于数据集本身的内存占用,仅调整内存上限很难满足需求。以下是几种更适合大样本量数据集的存储格式,均能大幅降低写入时的内存开销:

推荐存储格式及使用方法

1. RDS格式(R原生格式,优先推荐)

  • 优势:R官方原生二进制序列化格式,无需安装额外包即可使用,会完整保留数据的所有属性(比如你数据中的factor因子结构不会丢失),压缩率高,读写时的内存开销极低
  • 操作代码:
    写入:saveRDS(your_dataframe, file = "species_dataset.rds", compress = "xz")
    读取:loaded_df <- readRDS("species_dataset.rds")

2. Parquet格式(跨语言通用列式存储)

  • 优势:行业通用的列式存储格式,压缩率比RDS更高,支持按列读取、无需全量加载即可访问部分字段,也可被Python、Java等其他语言直接读取,适合需要跨工具协作的场景
  • 操作代码(需先安装arrow包:install.packages("arrow")):
    写入:arrow::write_parquet(your_dataframe, sink = "species_dataset.parquet", compression = "zstd")
    读取:loaded_df <- arrow::read_parquet("species_dataset.parquet")

3. FST格式(高速读写专属格式)

  • 优势:专门为R优化的二进制格式,读写速度是所有常见格式中最快的一档,支持随机读取指定行/列,适合需要频繁读写部分数据的场景
  • 操作代码(需先安装fst包:install.packages("fst")):
    写入:fst::write_fst(your_dataframe, path = "species_dataset.fst", compress = 90)
    读取:loaded_df <- fst::read_fst("species_dataset.fst")

选择建议

  • 仅在R环境下使用数据:优先选RDS,操作最简单,兼容性最好
  • 需要跨语言使用数据/只需要访问部分字段:选Parquet
  • 对读写速度有极高要求:选FST

内容的提问来源于stack exchange,提问作者Jose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:45:04