我希望在非交互模式下让RStudio优雅地退出.我试过了:
stop("",call = quit(save = "no",status = 0, runLast = FALSE))
Run Code Online (Sandbox Code Playgroud)
RScript myscript.R从cmd/shell 调用时它可以工作.
但是,当我在RStudio中获取文件时,我得到一个R会话中止错误.无论如何要从RStudio做到这一点?
我想在pyspark的udf中使用石灰 explainer。我以前已经训练过表格解释器,并且按照链接中的建议将其存储为莳萝模型
loaded_explainer = dill.load(open('location_to_explainer','rb'))
def lime_explainer(*cols):
selected_cols = np.array([value for value in cols])
exp = loaded_explainer.explain_instance(selected_cols, loaded_model.predict_proba, num_features = 10)
mapping = exp.as_map()[1]
return str(mapping)
Run Code Online (Sandbox Code Playgroud)
但是,这会花费很多时间,因为看来很多计算都发生在驱动程序上。然后,我一直在尝试使用Spark广播将解释器广播给执行者。
broadcasted_explainer= sc.broadcast(loaded_explainer)
def lime_explainer(*col):
selected_cols = np.array([value for value in cols])
exp = broadcasted_explainer.value.explain_instance(selected_cols, loaded_model.predict_proba, num_features = 10)
mapping = exp.as_map()[1]
return str(mapping)
Run Code Online (Sandbox Code Playgroud)
但是,我在广播中遇到了一个腌制错误。
PicklingError:无法在0x7f69fd5680d0>进行酸洗:在lime.discretize上进行属性查找失败
有人可以帮忙吗?是否有类似的东西dill可以代替spark中使用的cloudpickler?
我在pyspark上有一个结构化的流媒体作业,它在文件源上进行一些聚合.我有一个kinesis firehose结合来自IoT类型应用程序的数据,并将数据存储在S3位置作为每分钟文件在以下文件夹结构中的不同文件夹中 -
s3://year/month/day/hour/
Run Code Online (Sandbox Code Playgroud)
我的火花结构化流媒体作业似乎可以列出我的S3存储桶中可用的所有文件.由于列表过程似乎比我设置的处理时间花费更多的时间.我得到以下警告,我想知道是否有办法不让这种情况发生.
18/06/15 14:28:35 WARN ProcessingTimeExecutor: Current batch is falling behind. The trigger interval is 60000 milliseconds, but spent 74364 milliseconds
18/06/15 14:28:42 WARN FileStreamSource: Listed 4449 file(s) in 6822.134244 ms
18/06/15 14:29:06 WARN FileStreamSource: Listed 4449 file(s) in 6478.381219 ms
18/06/15 14:30:08 WARN FileStreamSource: Listed 4450 file(s) in 8285.654031 ms
Run Code Online (Sandbox Code Playgroud) 我知道我们可以在通过引用创建列时动态添加列名称(使用:=),如下所述:Data.table 中的动态列名称。
但是,我希望在聚合时动态添加列名称。你能帮忙吗?
test_dtb <- data.table(a = sample(1:100, 100), b = sample(1:100, 100), id = rep(1:10, 10))
m = "blah"
test_dtb[ , list((m) = mean(b)), by = id]
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
Error: unexpected '=' in "test_dtb[ , list((m) =
Run Code Online (Sandbox Code Playgroud) 我正在尝试为下面的情节准备一个图例,点缀后跟A和虚线后跟B.它没有正确显示.由于我有2种美学,它有时只显示一种线型,有时甚至没有.我用scale_linetype_manual()和guides(),但它无法产生预期的效果.但
我创建的代码,我删除了显示我尝试制作图例的代码.
exemplo<-data.frame(Location = c("Tiburon Peninsula", "San Francisco","Santa Barbara area", "Santa Monica Mountains", "Marin County",
"Santa Cruz Mountains", "Monterey County", "San Diego County","California Coast"),
Area = c(5.9, 45, 110, 320, 529, 1386, 3324,4260, 24520),
Species = c(370L, 640L, 680L, 640L, 1060L, 1200L,1400L, 1450L, 2525L))
modelo<-lm(log(Species,10)~log(Area,10),data=exemplo)
modelo_nls<-nls(Species~a*Area^z,start=list(a=1,z=0.25),data=exemplo)
linha<-data.frame(x=log10(seq(1,25000,100)),y=log10(predict(modelo_nls,newdata=data.frame(Area=seq(1,25000,100)))))
ggplot(data=exemplo,aes(x=log10(Area),y=log10(Species)) ) + geom_point() +
geom_abline(intercept = modelo$coefficients[1], slope = modelo$coefficients[2],linetype="dotted") +
geom_line(data=linha,aes(x=x,y=y),linetype="dashed")+
xlab(label="Área(ha)") + ylab(label="Número de espécies")
Run Code Online (Sandbox Code Playgroud)