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

read.fst()致R崩溃,需提前检测损坏.fst文件的解决方案

如何在读取前快速可靠检测损坏的.fst文件?

该问题已在fstpackage的仓库中提出,但包作者已不再积极维护。目前遇到的核心问题是:小部分.fst文件会导致R会话直接崩溃,且该问题可稳定复现,崩溃会中断脚本后续处理流程,因此需要找到在执行read.fst()前检测文件是否损坏的替代方案。该问题在Ubuntu R服务器及Mac OS的R 4.2版本中均会触发。

已尝试的方案及存在的问题

  • tryCatch()捕获异常:无法阻止R会话崩溃
  • 按列读取read.fst():存在三点明显问题:
    1. 列数据损坏:测试文件的最后2列数据异常,输出示例:
      > fst::read.fst("corrupted.fst",columns = c("termid","ts","rv","av"),from = 1,to = 10)
             termid                  ts            rv            av
      1  1204011660                <NA> 4.646816e-310 4.646816e-310
      2  1204011660 2022-07-21 07:52:43 4.646816e-310 4.646816e-310
      3  1204011660 2022-08-18 16:37:19 4.646816e-310 4.646816e-310
      4  1204011660 2022-08-18 16:37:20 4.646835e-310 4.646835e-310
      5  1204011660 2022-08-18 16:37:50 4.646817e-310 4.646817e-310
      6  1204011660 2022-08-18 16:38:13 4.646817e-310 4.646817e-310
      7  1204011660 2022-08-18 16:38:43 4.646817e-310 4.646817e-310
      8  1204011660 2022-08-18 16:39:13 4.646817e-310 4.646817e-310
      9  1204011660 2022-08-18 16:39:15 4.646819e-310 4.646819e-310
      10 1204011660 2022-08-18 16:39:45 4.646830e-310 4.646830e-310
      
    2. 响应速度极慢:仅读取前10行耗时约5秒,性能测试输出:
      > system.time(fst::read.fst("corrupted.fst",columns = c("termid","ts","rv","av"),from = 1,to = 10))
         user  system elapsed 
        2.069   3.874   5.940 
      
    3. 可靠性不足:对部分损坏文件仍会触发R会话崩溃,无法作为通用解决方案

需求

希望找到更快、更可靠的.fst文件损坏预检测方法,避免读取时的会话崩溃问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:10:34