繁体   English   中英

丢弃缓冲区,因为使用Rserve时错误太大

[英]Discarding buffer because too big error while using Rserve

我正在使用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()但效果不佳。 有人可以帮忙吗?

您可能要增加maxinbuf。 例如,为了将其设置为4GB,请打开(如果不存在,则创建一个新文件)文件/etc/Rserv.conf(如果您使用的是Linux或Mac)并输入以下行:

maxinbuf 4194304

(以KB为单位)。

但是,我看到您的情况下的预期数量超过了41GB,这是一个不合理的数字(实际上不太可能传递这样大小的参数)。 您能否分享实际导致此错误的代码(Java和R代码)?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM