我有这个示例R刮刀脚本(我不能使用实际网站):
#!/usr/bin/Rscript
library(RCurl)
library(httr)
library(rvest)
library(lubridate)
library(stringi)
new_files
fun1
paste0("https://example.com", ln)),
config(ssl_verifypeer = FALSE))
if(y == Sys.Date()) {writeBin(fun1$response$content, bn)}
else ("He's dead, Jim")
return(fun1$response$content)
}, links, dates, names)
我正在通过Apache NiFi(ExecuteProcessor处理器)在docker容器中运行此脚本.但是当我设置它运行时,我不断收到此错误:
Process execution failed due to java.io.IOException: Stream closed: java.io.IOException: Stream closed
java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)
at java.io.BufferedInputStream.read(BufferedInputStream.java:336)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at org.apache.nifi.processors.standard.ExecuteProcess$4.call(ExecuteProcess.java:367)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
我应该关闭之前阅读this answer on closing streams.当脚本在我的本地计算机上/在RStudio中正常工作时,我不知道为什么会抛出一个关闭的异常错误.
它一旦在docker容器中执行就会搞砸.与Map函数中的if / else语句有关吗?我不知道 – 或者它与装载lubridate包装有关.