我可以通过 Livy 服务连接到非 Kerberized Spark集群,而不会出现来自远程Rstudio 桌面(Windows)的问题。
但是,如果启用了 Kerberos 安全性,连接将失败:
library(sparklyr)
sc <- spark_connect("http://host:8998", method = "livy")
Run Code Online (Sandbox Code Playgroud)
回来
Error in livy_validate_http_response("Failed to create livy session", :
Livy operation is unauthorized. Try spark_connect with config = livy_config()
Run Code Online (Sandbox Code Playgroud)
使用sparklyr_0.5.6-9002
MIT Kerberos for Windows 进行身份验证。
在另一方面,从内群集(即,通过curl
)连接成功。
我究竟做错了什么?这种连接需要哪些额外设置?
该livy_config(..., username, password)
配置似乎只形成一个Authorization: Basic ...
头,但这里笔者还是怀疑Negotiate
或Kerberos
(?)应该不是必需的。
我还缺少其他任何可能的配置吗?
注意:kinit
在使用授权用户从 shell 运行后,从 RStudio Server (web) 返回相同的错误。
withProgress
获取数据的示例:
withProgress({
data <- dbGetQuery(con, query)
}, value = 1, message = 'Fetching data...')
Run Code Online (Sandbox Code Playgroud)
假设这通常会很快返回数据。但是,在某些情况下,当数据库过载时,查询可能会堆积在队列中,这将导致等待结果的时间异常长。
是否可以添加超时和警告弹窗,提醒用户等待时间正常(即预期,如果说报告负载高),一切运行正常,没有必要,例如,重新启动应用程序?
我认为message =
在运行 60s 后更改就足够了,但有可能吗?
我有一个 Excel 工作簿,我想使用 R 编辑/填充其中的某些特定单元格,而不更改任何格式。
到目前为止,我已经尝试过XLConnect包,它似乎可以做我正在寻找的东西,我只是没有找到一种方法来做到这一点。
我解决这个问题的直接方法:
wb <- loadWorkbook("file1.xls")
data1 <- readWorksheet(wb, "Sheet1", header=TRUE)
## adding a value to a particular cell:
data1[11,12] <- 3.2
## rewriting old data:
writeWorksheet(wb, data1, "Sheet1")
saveWorkbook(wb, "new_file1.xls")
Run Code Online (Sandbox Code Playgroud)
但是,这样新工作簿会丢失所有以前的格式(合并的单元格、公式等)。
有没有办法在不丢失剩余工作表的任何格式的情况下更改某些单元格中的值?
到目前为止,我发现lapply
在 R 中使用并行的最简单方法是通过以下示例代码:
library(parallel)
library(pbapply)
cl <- makeCluster(10)
clusterExport(cl = cl, {...})
clusterEvalQ(cl = cl, {...})
results <- pblapply(1:100, FUN = function(x){rnorm(x)}, cl = cl)
Run Code Online (Sandbox Code Playgroud)
它有一个非常有用的功能,即为结果提供进度条,并且当不需要并行计算时,通过设置 可以很容易地重用相同的代码cl = NULL
。
然而,我注意到的一个问题是它pblapply
正在批量循环遍历列表。例如,如果一个工人在某项任务上停留了很长时间,那么剩下的工人将等待该任务完成,然后再开始一批新的工作。对于某些任务,这会为工作流程增加大量不必要的时间。
我的问题:
是否有任何类似的并行框架允许工作人员独立运行?进度条和重用代码的能力cl=NULL
将是一个很大的优势。
也许可以修改现有代码pbapply
来添加此选项/功能?
我正在使用一些较旧的 R 项目,它们依赖于几个当前已弃用(或大量修改)的包。为了让一切工作顺利我使用旧版本的包,我已经保存在另一个文件夹,加载的手动到%userprofile%\documents\R\win-library\3.3
必要的时候。但是,这并不方便,特别是如果我想同时运行多个项目,其中一些项目需要包的新版本和更新版本。
我的问题 - 有没有办法为每个.Rproj
需要和加载库的目录指定自定义目录?
考虑以下数据:
probs <- seq(0,0.3, by=0.001)
targets <- sapply(probs, function(p){
sample(c(0,1),size=1,prob = c(1-p,p))
})
Run Code Online (Sandbox Code Playgroud)
然后使用loess
我可以将平滑的“目标”值绘制为概率估计:
require(magrittr)
loess(targets~probs,span=0.3) %>% predict %>% {plot(. ~ probs)}
Run Code Online (Sandbox Code Playgroud)
但是,无论选择lowess
什么值,我都无法使用 来做到这一点:f
lowess(x = probs, y = targets, f = 0.01) %>% with(plot(y ~ x))
Run Code Online (Sandbox Code Playgroud)
我的问题:为什么结果不同?有没有什么方法可以实现与lowess
该输出loess
相匹配的相同输出?
根据 SO 上的众多线程,对于单变量情况,loess 和 lowess 似乎应该匹配。
不相关的旁注:为什么我不使用loess
呢?目标是了解lowess
和之间的差异loess
。此外,我想使用 Python 重新应用结果statsmodels
,据我所知,Python 只提供lowess
.