我的闪亮应用程序遇到问题,从csv文件渲染的列数据在行而不是列中显示(除标头之外的每个变量都被视为列,而应在行中对齐)。每次我访问闪亮的页面时,它都会弹出以下错误:“ DataTables警告:table id = DataTables_Table_0-请求第10行的未知参数'10'。有关此错误的更多信息,请参见http://datatables.net/tn/4”。请参见下面的图片
具有完全相同代码的相同应用程序在质量集群中运行完全正常,并且在生产中失败。两种景观完全相同。请查看下面的两个图像,以显示数据外观和当前显示方式。 enter image description here
该应用程序正在R 3.6的RHEL 7上运行
Server.R
shinyServer(function(session,input,output) {
myAnalysisList = reactiveFileReader(1000,NULL,"scheduledAnalyses.csv",readFunc = read.csv,stringsAsFactors = FALSE,encoding = "UTF-8")
observeEvent(input$schedule,{
tryCatch({
adjustedDateRange<-getadjustedDateRange(input$dateRange[1],input$dateRange[2],type = input$forecastType)
currTime = Sys.time()
print(input$forecastHorizon)
forecastHorizonCorrected = input$forecastHorizon
if(input$forecastType!="Monthly"){
forecastHorizonCorrected = input$forecastHorizonWeekly
}
newRow = data.frame(ScheduledAt = as.character(currTime),StartDate = as.character(adjustedDateRange$startDate),EndDate = as.character(adjustedDateRange$endDate),Linea = input$productLinea,Series = input$productSeries,Group = input$productGroup,StatGroup = input$productStatGroup,ProductCode = input$productCode,DemProfile = input$demandProfileSelected,FType = input$forecastType,FHorizon = forecastHorizonCorrected,Status = "Scheduled",Duration = 0)
msg="Just before writing the Schedule"
write.table(newRow,sep = ",",row.names = FALSE,append = TRUE,col.names = FALSE)
output$scheduleStatus = renderUI({
box(title = "Status : Success",status = "success",width =NULL,solidHeader = TRUE,paste("Process has been scheduled at ",currTime," ",format(currTime,format = "%Z")))
})
},error = function(errorMsg){
output$scheduleStatus = renderUI({
box(title = "Status : Error",status = "danger",paste("Unable to schedule the process!\n Error: ",errorMsg$message,msg))
})
})
#myAnalysisList <<- bind_rows(myAnalysisList,newRow)
output$analysesList <- renderDataTable(myAnalysisList())
})
output$analysesList = renderDataTable(myAnalysisList())
# observeEvent(input$forecastHorizon,{
# print(input$forecastHorizon)
# })
UI.R
inp<-read.csv("inp.csv",stringsAsFactors = FALSE)
#-------------------------Loading data from Spark ---------------------------------#
#tbl_cache(sc,"demand_forecast_newcode_monthyr")
#inpPtr<-tbl(sc,"demand_forecast_newcode_duedate") %>% filter(linea == "Linea Differenziali DS271" | linea == "Linea Differenziali Elettronici DSE201" | linea == "Linea Differenziali Puri F200" )
#inp<-collect(inpPtr)
#columnNames<-colnames(inp)
#newNames<-sub("^.*\\.","",columnNames)
#colnames(inp)<-newNames
#View(inp)
inp<- inp[!is.na(inp$due_date),]
inp<- inp[!is.na(inp$linea),]
inp<- inp[!is.na(inp$series),]
inp<- inp[!is.na(inp$groupo),]
inp<- inp[!is.na(inp$gruppo_stat),]
inp<- inp[!is.na(inp$productcode),]
inp$due_date <- as.Date(inp$due_date,origin = "1970-01-01")
inpmod <- inp %>%
mutate(Year = year(due_date),Month = month(due_date),MonthlyDate = format(due_date,format= "%Y-%m-01"),QuarterlyDate = quarter(due_date,with_year = TRUE),SemesterDate = semester(due_date,WeekInYear = isoweek(due_date)
)
lineaChoices = c("All",unique(inpmod$linea))
serieChoices = c("All",unique(inpmod$series))
groupChoices = c("All",unique(inpmod$groupo))
statGroupChoices = c("All",unique(inpmod$gruppo_stat))
productCodeChoices = c("All",unique(inpmod$materiale))
# Define UI for application that plots random distributions
shinyUI(dashboardPage(
skin="red",dashboardheader(title = "Demand Forecasting,ABB Inc.",titleWidth = 350),dashboardSidebar(
sidebarMenu(
menuItem( "Forecast",tabName = "forecastTab",icon = icon("line-chart")),menuItem( "Status",tabName = "statusTab",icon = icon("cogs"))
)
),dashboardBody(
tabItems(
tabItem( tabName = "forecastTab",fluidRow(
column( width = 8,fluidRow(
column( width = 12,box(title = "Timeline",width = NULL,dateRangeInput("dateRange","Date Range(MM-YYYY):",format = "MM-yyyy",startview = "decade",start = "2010-01-01",end = Sys.Date())
#tags$br(),#textOutput("AdjustedDate")
)
)
),fluidRow(
column( width =12,box(title = "Product Hierarchy",column(width = 6,selectInput("productLinea","Linea",selectize = TRUE,choices = lineaChoices,selected = "All"),tags$br(),selectInput("productGroup","Group",choices = statGroupChoices,selectInput("productCode","Product Code",choices =productCodeChoices,selected = "All")
),column(width = 6,selectInput("productSeries","Series",choices = serieChoices,selectInput("productStatGroup","Statistical Group",choices = groupChoices,selected = "All")
)
)
)
)
),column( width = 4,box( title = "Forecast Parameters",selectInput("demandProfileSelected","Demand Profile",choices = c("Predictable","Unstable","All"),selected = "Predictable"),#tags$h4("Select the required granularity for the forecast"),selectInput("forecastType","Forecast Type",choices = c("Monthly","Weekly"),selected = "Monthly"),tags$hr(),#tags$h4("Select the number of time periods from end date to forecast"),#tags$br(),conditionalPanel("input.forecastType=='Monthly'",sliderInput("forecastHorizon","Forecast Horizon:",1,12,6)),conditionalPanel("input.forecastType=='Weekly'",sliderInput("forecastHorizonWeekly",52,12))
)
)
),fluidRow(
column(width = 2,actionButton("clear"," Clear",class = "btn-lg btn-success",style='color: white; width:100%; height:70px; font-size:150%;',icon = icon("refresh"))
),column(width = 3,actionButton("schedule"," Schedule & Start",class = "btn-lg",style='color: white; background-color: #dd4b39; width:100%; height:70px; font-size:150%;',icon = icon("cogs"))
)
# column(width = 8,# uiOutput("scheduleStatus")
# )
),fluidRow(
tags$br(),column(width = 3),column( width = 6,uiOutput("scheduleStatus")
)
)
),tabItem(tabName = "statusTab",#p("COmiNg sOoN")
fluidRow(
column(12,box(title = "Scheduled Forecasts",dataTableOutput('analysesList')
)
)
)
)
)
)
))