如何从 Bigquery 读取数据到 Golem 制作的 Shiny App

How to read data from Bigquery into Shiny App made with Golem

我正在尝试将数据从 Bigquery table 读取到遵循 Golem 框架的 Shiny App。

这可以通过在 App.R 文件中的 uiserver 函数之前添加以下代码来轻松完成

bq_auth(path = "xxxxxxxxxxxx.json") # authenticating biqrquery with service account json file

# Establishing connection
con <- dbConnect(
           bigrquery::bigquery(),
           project = "project id",
           dataset = "dataset name",
           billing = "project id"
)

但是我对使用 Golem 时的方法有点迷茫。

thread 之后,我在 app_server.R 文件上创建了一个 reactiveValue()

#' The application server-side
#' 
#' @param input,output,session Internal parameters for {shiny}. 
#'     DO NOT REMOVE.
#' @import shiny
#' @import bigrquery  
#' @noRd

app_server <- function( input, output, session ) {
# Your application server logic 
bq <- reactiveValues()

observe({

    bq$con <- dbConnect(drv = bigquery(),
                    project = "project_id",
                    dataset = "datset_id",
                    billing = "project_id")

})

}

我还导入了 bigrquery 但这似乎破坏了一些东西,因为现在当我 运行 run_dev.R:

时出现以下错误
> golem::document_and_reload()
Loading Dashboard
Error : object ‘DBI’ is not exported by 'namespace:bigrquery'
-- Error documenting your package ----------------------------------------------------------------
> 
> # Run the application
> run_app()
Error in run_app() : could not find function "run_app"

根据您的错误,问题如下:

> golem::document_and_reload()
Loading Dashboard
Error : object ‘DBI’ is not exported by 'namespace:bigrquery'
-- Error documenting your package --

在您的代码中的某处,您试图调用 bigrquery::DBI(),但它不是此包中的函数。因此 {golem} 的错误:如果您有命名空间错误,则无法加载所有内容:)

您应该在 :

中找到此代码错误
  • 在你的一个 R 脚本中你做 bigrquery::DBI()
  • 在您的 NAMESPACE 中,您可能 importFrom(bigrquery, DBI)
  • 在你的 RScript 中的 @importFrom 中,你可能正在做的地方 @importFrom bigrquery DBI

删除它应该可以解决问题。

干杯, 科林