我正在使用Rserve
从我的Java代码中访问R脚本。在整个代码中,一切都工作正常,我将变量传递给Rscripts并返回结果。但是,几乎在代码的末尾,我访问R脚本,我收到以下错误:
WARNING: discarding buffer because too big (awaiting 44617265235 bytes)
并且执行因此错误而停止:
java.util.concurrent.ExecutionException:
org.rosuda.REngine.Rserve.RserveException: eval failed, request status: invalid parameter
Caused by: org.rosuda.REngine.Rserve.RserveException: eval failed, request status: invalid parameter
我不确定为什么以及从哪里产生此错误以及如何解决此问题?我在网上找到了一个解决方案:https://github.com/cscheid/rserve-js/issues/7但它并没有证明是非常有用的。我每次访问我的R脚本后都尝试使用connection.close()
,但它也不能正常工作。有人可以帮忙吗?
答案 0 :(得分:1)
您可能想要增加maxinbuf。例如,为了将其设置为4GB,打开(如果它不存在则创建一个新的)文件/etc/Rserv.conf(如果您在Linux或Mac上)并放入以下行:
AddString
(金额以KB为单位)。
但是,我看到你的情况下预期的金额超过了41GB,这是一个不合理的数字(你实际上不太可能传递这样大小的参数)。您能否分享实际导致此错误的代码(Java和R代码)?