【问题标题】:Cache SQL chunk with R Markdown / Notebook without Knitting in RStudio使用 R Markdown / Notebook 缓存 SQL 块而不在 RStudio 中编织
【发布时间】:2017-02-16 20:46:30
【问题描述】:

我的 R Markdown / Notebook 文档中有一大段 SQL:

```{sql output.var = "df"}
SELECT * FROM FakeData
WHERE Date >= '2017-01-01
```

运行实际上需要 5 分钟。有没有一种简单的方法来缓存查询结果而无需编写文档或将文件写入 CSV。

我可能希望缓存能存活几个小时,或者一天(有没有办法调整它?)

【问题讨论】:

    标签: r rstudio r-markdown knitr


    【解决方案1】:

    如果您将cache=TRUE 放在块选项中并且您正在使用 rStudio,您可以选择一段代码并使用 rMarkdown/knitr 控制台右上角的绿色箭头直接运行它。

    {sql output.var = "df", cache=TRUE} SELECT * FROM FakeData WHERE Date >= '2017-01-01

    另外,我倾向于在另一个窗口中运行一个常规的 R 脚本,其中包含我将在 knitR 中使用的所有内容。我发现如果数据存储在全局环境中,我在包可用性和缓存方面的问题就会减少。

    如果您这样做,并且使用 cache=TRUE 运行,您肯定能够在第一次运行时保存数据并跳过下次等待。

    【讨论】:

    • 有趣。我认为块中的缓存参数仅适用于 knitr?
    • cache 应该适用于任何代码块;如果不是,这可能是一个错误,您应该报告给github.com/yihui/knitr/issues
    • 我错过了你所问的部分内容。不,在笔记本中它与 cache=TRUE 的工作方式不同。但是,如果您在脚本中运行它并将其保存在全局环境中,您应该能够在开发期间在笔记本中使用它。我刚刚对其进行了测试,它对我从一个块到另一个块都有效......
    • 我相信@sconfluentus 是对的,rnotebooks 中的 sql 块并不代表缓存块参数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 2021-04-20
    • 2019-12-08
    • 1970-01-01
    • 2019-02-12
    相关资源
    最近更新 更多