集成Java和R.

时间:2012-12-12 10:45:10

标签: r rjava rserve rcaller

我正在寻找一些第三方罐子来做一些高级分析过程,比如Java中的SQL窗口函数,因为我们的数据库mysql不支持它。在谷歌的帮助下,我找到了“R”,虽然它不是基于java的,但它可以解决我的大多数情况。我尝试过“RJava”和“Rcaller”接口来连接java。

对于性能,可伸缩性和长期运行,这是在Java中连接R的最佳库。请建议。

1 个答案:

答案 0 :(得分:3)

假设“Java内部的R”意味着从Java调用R:JRI(rJava的一部分)在Java中嵌入R.这是最有效的方式,因为它是一个直接的JNI接口。 (有关已部署的示例,请参阅JGR)。

另一种选择是Rserve,它是一个客户端/服务器概念。它具有在系统之间序列化数据的代价,但允许并行连接(在unix上),这是JRI无法实现的,因为R是单线程的,因此它只能在每个Java进程的一个线程中运行。

RCaller效率最低,因为它简单地调用R进程,因此具有冷启动问题(与Rserve相比)以及效率较低的序列化。