如何在Rshiny网页中使用sql查询作为输出

问题描述 投票:1回答:1

所以,我试图输出一个查询到Rshiny应用程序,但不断在输出中出错。这是我的输出:

#
# This is a Shiny web application. You can run the application by clicking
# the 'Run App' button above.
#
# Find out more about building applications with Shiny here:
#
#    http://shiny.rstudio.com/
#

    library(shiny)
    library(DBI)

 for Spark 2.1.X
Sys.setenv(SPARK_HOME="/opt/cloudera/parcels/SPARK2/lib/spark2/")
Sys.setenv(SPARK_HOME_VERSION="2.1.0")


#Connecting to Spark
sc <- spark_connect(master ="yarn-client")

ui <- fluidPage(
  numericInput("nrows", "Enter the number of rows to display:", 5),
  tableOutput("tbl")
)

server <- function(input, output, session) {
  output$tbl <- renderTable({

    iris_preview <- dbGetQuery(sc,"select * from sndbx_dx.ncct_mapping limit 3")
    iris_preview

  })
}

shinyApp(ui, server)

我只是试图让iris_preview在我运行时在闪亮的应用程序中显示。有谁看到我做错了什么?

我想从我的Hive数据库输出表格,因为即时连接到spark。

r shiny rstudio dbi sparklyr
1个回答
1
投票

这是一个基于iris数据集和sqlite的简单示例,可以帮助您入门:

library(shiny)
library(RSQLite)
library(DBI)
library(datasets)

con <- dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "iris", iris)
dbListTables(con)

ui <- fluidPage(
  numericInput("nrows", "Enter the number of rows to display:", 5),
  actionButton(
    inputId = "queryButton",
    label = "Query",
    icon = icon("refresh")
  ),
  tableOutput("tbl")
)

server <- function(input, output, session) {
  iris_preview <- reactiveVal(data.frame())

  observeEvent(input$queryButton, {
    queryString <- sprintf("select * from iris limit %s", input$nrows)
    iris_preview(dbGetQuery(con, queryString))
  })

  output$tbl <- renderTable({
    iris_preview()
  })
}

shinyApp(ui, server)

从长远来看,请阅读this

© www.soinside.com 2019 - 2024. All rights reserved.