处理在 R 中仍然需要很长时间才能执行的缓存块?

Posted

技术标签:

【中文标题】处理在 R 中仍然需要很长时间才能执行的缓存块?【英文标题】:Dealing with a cached chunk that is still taking a long time to execute in R? 【发布时间】:2020-11-24 21:11:38 【问题描述】:

我目前有一个 1000 万行的表,我正在上传到 R。我知道上传到 R 的过程需要一些时间,因此我决定将我的块存储为 chache = TRUE 并且我做了很好的措施关注

knitr::opts_chunk$set(cache = TRUE, warning = FALSE, 
                      message = FALSE, cache.lazy = FALSE)

当我重新运行我的 RMarkdown 文档时,仍然需要 30 分钟以上的时间来执行具有大数据框的块。为什么我的结果没有被缓存,因此它不需要花费很长时间来执行?我没有对查询进行任何更改,后端数据也没有更新。

【问题讨论】:

这对yihui.org/en/2018/06/cache-invalidation有帮助吗? 可能,我所做的唯一更改是添加 cache.cmets = FALSE 如果缓存的对象足够大,即使缓存信息已经是 R 二进制格式(应该有最快的加载时间......),它也可能需要很长时间才能加载缓存信息? 【参考方案1】:

在你的问题中你有chache = TRUE,你的意思是cache = TRUE吗?

您也可以在它自己的 R 脚本中完成繁重的处理,并在您的 Rmarkdown 中使用source('rscript.R') 调用它。在 .R 文件中设置缓存的位置

如this link 中所述,您可以自己缓存对象...

if (file.exists("results.rds")) 
  res <- readRDS("results.rds")
 else 
  res <- compute_it()  # a time-consuming function
  saveRDS(res, "results.rds")

【讨论】:

以上是关于处理在 R 中仍然需要很长时间才能执行的缓存块?的主要内容,如果未能解决你的问题,请参考以下文章

在 Oracle 中处理删除逻辑需要很长时间

需要 PHP 逐行处理的 CSV 需要很长时间(或超时)才能进入 SQL 数据库

清理手机缓存每次都要花费很长时间,有啥办法可以快速清理吗?

Mysql Join Query需要很长时间才能执行

查询需要很长时间才能执行 laravel

查询需要很长时间才能执行大约 120 秒