我有一个 csv.gz 文件(据我所知)压缩前的大小为 70GB。我的机器有 50GB 的 RAM,所以无论如何我永远无法在 R 中打开它。
例如,我可以按如下方式加载前 10m 行:
library(vroom)
df <- vroom("HUGE.csv.gz", delim= ",", n_max = 10^7)
Run Code Online (Sandbox Code Playgroud)
对于我必须做的事情,可以一次加载 10m 行,执行我的操作,然后继续接下来的 10m 行。我可以循环执行此操作。
因此,我正在尝试skip论证。
df <- vroom("HUGE.csv.gz", delim= ",", n_max = 10^7, skip = 10^7)
Run Code Online (Sandbox Code Playgroud)
这会导致错误:
Error: The size of the connection buffer (131072) was not large enough
to fit a complete line:
* Increase it by setting `Sys.setenv("VROOM_CONNECTION_SIZE")`
Run Code Online (Sandbox Code Playgroud)
我增加了这个Sys.setenv("VROOM_CONNECTION_SIZE" = 131072*1000),但是,错误仍然存在。
这个问题有方法解决吗?
编辑:我发现随机访问 gzip 压缩的 csv (csv.gz) 是不可能的。我们必须从头开始。可能最简单的方法是解压并保存,然后跳过就可以了。
我希望当用户单击按钮时出现注销和身份验证屏幕。
credentials <- data.frame(
user = "x",
password = "x"
)
library(shiny)
library(shinymanager)
ui <- fluidPage(
tags$h2("My secure application"),
actionButton("action_logout", "Logout!")
)
ui <- secure_app(ui)
server <- function(input, output, session) {
res_auth <- secure_server(
check_credentials = check_credentials(credentials)
)
observeEvent(input$action_logout, {
# logout
})
}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
我发现shinymanager的右下角默认的注销按钮有id = ".shinymanager_logout",所以我尝试用 来调用它session$sendCustomMessage(".shinymanager_logout", 1)。这或许是一种非常幼稚的方式。
如何使用自定义注销按钮注销用户?