从 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 中使用 DBI 连接到 bigquery 数据库后列出表的字段