我已经按照 rJava 安装中的 rtest.java 示例代码(Debian 和衍生产品上的 /usr/lib/R/site-library/rJava/jri/examples/rtest.java)从 java 数组构建 data.frames。
这适用于小数据帧(约 10000 行),但是当我愤怒地尝试执行此操作(即 > 1000000 行)时,它会导致 java 运行时出现段错误。
奇怪的是,我似乎能够创建 data.frame ok(进行通常的 rniPutXXXArray 调用),但是当我来保存 data.frame (使用 eval,在将 data.frame 分配给 R 符号之后)问题发生。
当我在 R 引擎上调用 eval 时,我可以看到一些调试,但是当我通过低级接口 (rniXXX) 时,我根本没有得到任何调试。有没有办法打开比我已经拥有的更多的调试?
对于它的价值,这里是 segv 消息的顶部。我当然可以根据要求提供更多细节。
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f1be6259ea5, pid=6898, tid=139758087001856
#
# JRE version: 7.0_03-b21
# Java VM: OpenJDK 64-Bit Server VM (22.0-b10 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea7 2.1.3
# Distribution: Debian GNU/Linux unstable (sid), package 7u3-2.1.3-1
# Problematic frame:
# C [libR.so+0x117ea5] SET_VECTOR_ELT+0x11f5
...