Java与R语言通信总结
注1:rJava并没有实际使用,这里提一下只是说明还存在这样一种R与Java通信的方式,所有关于rJava的内容均来自互联网;
注2:rJava是通过JNI(Java Native Interface)实现R与Java通信,因此R与Java的执行环境需要在同一台机器上同时存在。因为应用中需要远程调用R脚本,因此没有深入研究rJava。
注3:RUtils是一个偶然发现的基于Rserve的连接池工具集,项目中暂时没有使用。
注4:以下内容大都经过了测试,但仍不能保证内容的权威性。
R语言简介
R语言作为一门统计学语言,一直在小众领域闪耀着光芒。直到大数据的爆发,R语言变成了一门炙手可热的数据分析的利器。随着越来越多的工程背景的人的加入,R语言的社区在迅速扩大成长。现在已不仅仅是统计领域,教育、银行、电商、互联网….等等都在使用R语言。
Rserve
Rserve介绍
Rserve是一个基于TCP/IP协议的,允许R语言与其他语言通信的C/S结构的程序,支持C/C++,Java,PHP,Python,Ruby,Nodejs等。 Rserve提供远程连接,认证,文件传输等功能。我们可以设计R做为后台服务,处理统计建模,数据分析,绘图等的任务。
详细介绍请参照官方网站:https:///Rserve/
Rserve安装
Linux系统下建议使用root权限安装。下面的内容是依据Windows7系统中安装过程进行描述的。
进入R语言解释器:R
安装命令:("Rserve")
然后安装程序会提示我们选择下载镜像,提示如下:
--- Please select a CRAN mirror for use in this session ---
等我们选择了镜像后(测试时选择的是China(xxx)),安装程序便进行下载安装,最终会输出如下的信息(Linux下的输出信息或有不同):
说明Rserve安装成功,安装路径为:%R_HOME%\library\Rserve目录。
启动Rserve服务
在Windows命令窗口进入R_HOME\library\Rserve\libs\i386目录中执行如下命令(我的Windows7是32位的,如果是64位系统对应目录为R_HOME\library\Rserve\libs\x64):
R CMD Rserve
R将作出如下应答:
说明Rserve启动成功(端口6311),可以进行连接测试了。
上面的启动命令使用的本地模式,如果想远程连接需要增加参数–RS-enable-remote
即启动命令为:
R CMD Rserve --RS-enable-remote
注:在Linux系统中,启动命令是一样的。
Java远程连接Rserve
下载依赖jar包,地址:rve/files/
共两个jar包,下载完成后将它们加入到项目的classpath中即可:
也可以到Rserve安装目录中寻找,比如:R_HOME \library\Rserve\java目录中就有相关jar包,名字略有不同,经测试可以使用:
简单的测试代码:
.
Java与R语言通信总结 来自淘豆网m.daumloan.com转载请标明出处.