从 dplyr 代码生成 BigQuery 代码*而不*实际执行 BigQuery?

Posted

技术标签:

【中文标题】从 dplyr 代码生成 BigQuery 代码*而不*实际执行 BigQuery?【英文标题】:Generate BigQuery code from dplyr code *without* actually executing BigQuery? 【发布时间】:2019-11-24 12:18:29 【问题描述】:

我们可以看到here 一些关于如何使用 tidyverse 原则使用 R 包 bigrquery 和 dbplyr 使用 bigquery 来处理数据的简单说明。

这通过使用常规的 dplyr 代码来工作,当用户调用 %>% collect() 时,它会将 dplyr 代码转换为 BigQuery 的 SQL 风格,然后在 BigQuery 中执行 BigQuery 代码

我想知道是否可以使用这些包来简单地生成原始 BigQuery 代码,但不执行它?

我最终追求的是一种从 dplyr 生成 BigQuery 代码的方法,实际上不使用 BigQuery(例如,如果离线工作)

到目前为止我所知道的

我知道可以编写 dplyr 代码、调用 %>% collect() 并在浏览器的 GCP 控制台中查看生成/运行的 BigQuery 代码。我希望在 RStudio 中以字符串形式返回相同的代码(并且从未执行过)

【问题讨论】:

【参考方案1】:

不用collect(),只需在dplyr-code 的末尾输入%>% show_query()

【讨论】:

听起来不错。你知道这是否可以离线工作?我想可能不是因为它需要一些指向 BigQuery 表的指针? 我在iris上试了一下,得到no applicable method for 'show_query' applied to an object of class "data.frame",可以理解 不,它必须是您应用 (db)dplyr 代码的数据库连接

以上是关于从 dplyr 代码生成 BigQuery 代码*而不*实际执行 BigQuery?的主要内容,如果未能解决你的问题,请参考以下文章

max(.) 中的错误:使用 dplyr dbplyr 和 bigrquery 时参数的“类型”(列表)无效

将代码从基数R转换为dplyr,特别是添加变量

如何在 R 中使用 DBI 连接到 bigquery 数据库后列出表的字段

使用 dplyr 从数据帧中采样子组行

如何在 R 中使用 dplyr mutate 函数来计算运行余额?

r dplyr包上的示例代码。