【问题标题】:Dealing with a cached chunk that is still taking a long time to execute in R?处理在 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 分钟以上的时间来执行具有大数据框的块。为什么我的结果没有被缓存,因此它不需要花费很长时间来执行?我没有对查询进行任何更改,后端数据也没有更新。

【问题讨论】:

  • 可能,我所做的唯一更改是添加 cache.cmets = FALSE
  • 如果缓存的对象足够大,即使缓存信息已经是 R 二进制格式(应该有最快的加载时间......),它也可能需要很长时间才能加载缓存信息?

标签: r caching google-bigquery r-markdown knitr


【解决方案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")
}

【讨论】:

    猜你喜欢
    • 2012-12-03
    • 2011-03-14
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    相关资源
    最近更新 更多