我正在尝试使用dplyr访问/操作Google Bigquerry中的表格视图 . 但是,当我尝试使用dplyr函数(select,filter等)聚合表时,它给出了这个错误:“错误:无法在旧SQL查询中引用SQL视图 . ”下面的代码说明了我正在尝试做什么 .
#source the table
pd = src_bigquery(project, dataset) %>%
tbl(table)
#get a aggregated view of the table that is filtered on a specific date
pdSelect = pd %>%
select(id, date) %>%
filter(date =="2017-03-15") %>%
collect()
有没有办法在使用dplyr时不使用旧版SQL?例如,在Google Bigquery Web UI中,它显示“默认情况下,BigQuery使用旧版SQL运行查询 . 取消选中此选项以使用BigQuery更新的SQL方言运行查询,并提高标准合规性 . ”当我在该环境中工作时,我通常只是取消选择它以便停止使用旧版SQL .
谢谢你的帮助!
2 回答
编辑:应该可以通过将
#standardSQL
shebang放在查询的顶部来使用标准SQL .原始响应:看起来source for the BigQuery connector with dplyr中没有选项可以使用标准SQL,
#standardSQL
shebang不起作用 . 有一个issue submitted in relation to useLegacySql你可以投票或评论,或者你可以考虑submitting a pull request .除了传递shebang之外,您还可以将
use_legacy_sql
标志设置为bigrquery
和dplyr
连接器 . 如果您正在访问使用标准SQL构建的视图,这将非常有用 .bigrquery
将use_legacy_sql标志传递给
query_exec
:dplyr
将use_legacy_sql标志传递给
dbConnect
: