如何从闪亮的大写表中写入?

时间:2016-10-28 18:53:08

标签: shiny google-bigquery

我正在尝试编写一个闪亮的应用程序,它将文件作为输入,并将该文件中的数据上传到bigquery表,其中一些其他内容将继续。在将数据导入我的应用程序方面似乎一切正常,但是当我尝试将数据上传到bigquery时,没有任何反应。没有错误消息,只是没有。

我可以自己运行代码并且执行得很好。我在弄清楚如何创建一个可重现的例子时遇到了一些麻烦,因为你无法写入公共数据集,但我在下面包含了我的代码。

其他信息:

  • 工作目录包含我的.httr-oauth文件
  • 数据在我的闪亮应用中可见

如果我可以添加一些内容以便让这个问题更容易回答,请告诉我。感谢。

############# UI ############
#

library(shiny)

shinyUI(fluidPage(

  # Application title
  titlePanel("Upload"),

  # Sidebar with a slider input for number of bins
  sidebarLayout(
    sidebarPanel(
      fileInput('list', 'Choose file to upload',
                accept = c(
                  'text/csv',
                  'text/comma-separated-values',
                  '.csv'
                )),
      tags$hr(),
      textInput('sql', 'Or give a query to get the customer_ids you want'),
      tags$hr(),
      actionButton('go', 'Go')
    ),

    # Show a plot of the generated distribution
    mainPanel(
      tableOutput('log')
    )
  )
))


############# server ##############

### setting up the environment
library(shiny)
library(data.table)
library(bigrquery)

### setting up the constants
project <- 'xxxxxxx'
dest_dataset <- 'temp'
dest_table <- 'custs_hash'
cd <- 'CREATE_IF_NEEDED'
wd <- 'WRITE_TRUNCATE'

options(shiny.maxRequestSize = 100*1024^2)


shinyServer(function(input, output) {

  logs <- eventReactive(input$go, {
    inFile <- input$list
    dat <- fread(inFile$datapath)
    dat <- head(dat)
    return(list(dat = dat))
  })

  upload <- eventReactive(input$go, {
    data <- dat()$dat
    ins <- insert_upload_job(project, dataset = dest_dataset, table = dest_table, values = data,
                            create_disposition = cd, write_disposition = wd)
    return(list(ins = ins))
  })

  output$log <- renderTable(logs()$dat)

})

1 个答案:

答案 0 :(得分:0)

eventReactive返回一个反应式表达式对象。与其他反应对象一样,您需要明确地将其称为函数。否则它不会自行运行。

所以在你的情况下,你有upload <- eventReactive(...),那么你需要使用upload()来调用它。