Я пытаюсь написать блестящее приложение, которое берет файл в качестве входного файла и загружает данные в этот файл в таблицу 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)
})
Я не вижу, чтобы «upload» eventReactive использовался/назывался в любом месте вашего кода. –
Я не уверен, что вы подразумеваете под «upload» eventReactive. Это особая функция? функция журналов на сервере может извлекать входной файл и загружать его в мой блестящий сеанс. Это то же самое? – nFrain
У вас есть 'upload <- eventReactive (...)'. Обратите внимание, что eventReactive не будет запускаться сам по себе, если вы не вызываете его с помощью 'upload()'. Причина, по которой работает 'logs', заключается в том, что вы вызвали ее в' renderTable' –