新闻详情

新闻详情

首页 / 资讯中心 / 详情

使用Rserve远程执行R脚本_rserve 镜像地址-CSDN博客

发布时间:2026/9/25 7:45:19来源:尧图网络
使用Rserve远程执行R脚本_rserve 镜像地址-CSDN博客
首屏导读 · 本教程配套付费专栏 大模型工程师修炼手记19.9 元AI 编程 / Agent 实战 本文同主题系统课程· AI时代程序员的自我提升49.9 元AI 时代成长方法论。单篇不过瘾订阅解锁全量源码、实战与答疑文末附资料包领取方式 ↓注1关于Rserve网上有很多资料可以参考详细情况可以参考博客下面的“参考资料”部分本文只是简单介绍一下Rserve主要目的是记录一下Java远程执行R脚本文件的方法。注2这里提到的远程执行R脚本文件的方式都是R脚本存在于Rserve服务端如果R脚本文件存在客户端可以使用RUtils工具包http://blog.csdn.net/zhyh1986/article/details/13065199Rserve介绍Rserve是一个基于TCP/IP协议的允许R语言与其他语言通信的C/S结构的程序支持C/C,Java,PHP,Python,Ruby,Nodejs等。 Rserve提供远程连接认证文件传输等功能。我们可以设计R做为后台服务处理统计建模数据分析绘图等的任务。 详细介绍请参照官方网站https://rforge.net/Rserve/Rserve安装Linux系统下建议使用root权限安装。下面的内容是依据Windows7系统中安装过程进行描述的。进入R语言解释器R安装命令install.packages(“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[plain] view plain copyR CMD RserveR将作出如下应答说明Rserve启动成功端口6311可以进行连接测试了。上面的启动命令使用的本地模式如果想远程连接需要增加参数 –RS-enable-remote即启动命令为[plain] view plain copyR CMD Rserve –RS-enable-remoteJava远程连接Rserve下载依赖jar包地址http://www.rforge.net/Rserve/files/共两个jar包下载完成后将它们加入到项目的classpath中即可 REngine.jar RserveEngine.jar也可以到Rserve安装目录中寻找比如R_HOME \library\Rserve\java目录中就有相关jar包名字略有不同经测试可以使用简单的测试代码[java] view plain copypackage com.zyh.up.general.rjava;import org.rosuda.REngine.REXPMismatchException;import org.rosuda.REngine.Rserve.RConnection;import org.rosuda.REngine.Rserve.RserveException;public class RserveBegin {public static void main(String[] args) {try {callRserve();} catch (RserveException e) {e.printStackTrace();} catch (REXPMismatchException e) {e.printStackTrace();}}static void callRserve() throws RserveException, REXPMismatchException { RConnection rConnection new RConnection(192.168.101.122); String rv rConnection.eval(R.version.string).asString(); System.out.println(rv); double [] arr rConnection.eval(rnorm(10)).asDoubles(); for(double d : arr) { System.out.println(d); } }}测试可以通过程序将输出R语言版本信息及10个Double类型的数字。Java远程执行R脚本上面的示例只是执行R命令但如果我们在服务器上放置R脚本又该如何执行该脚本或调用其中的函数呢有两种方法可以完成上面的问题。假如我们定义了一个R脚本area.R其中定义了一个方法area该方法接收一个半径值然后计算对应面积并返回脚本内容非常简单[plain] view plain copyarea-function(r){pi*r^2}下面描述一下如何调用这个脚本中的area函数并获取其返回值。第一种方法就是直接用source函数将area.R脚本加载上来然后就可以像调用R语言内置命令/函数一样调用脚本中的area方法了。这样做有一个缺点就是每建立一次Java与R之间的连接就需要调用source函数一次。示例代码[java] view plain copypackage com.zyh.up.general.rjava;import org.rosuda.REngine.REXP;import org.rosuda.REngine.REXPMismatchException;import org.rosuda.REngine.Rserve.RConnection;import org.rosuda.REngine.Rserve.RserveException;public class RserveBegin {public static void main(String[] args) {try {callRScript();} catch (Exception e) {e.printStackTrace();}}static void callRScript() throws RserveException, REXPMismatchException { RConnection rc new RConnection(192.168.101.122); // source函数需要给出R脚本路径, 注意传入转义的引号 rc.eval(source(\/home/hadoop/wangfeng/javaR/area.R\)); REXP rexp rc.eval(area(10)); System.out.println(Area of 10 is rexp.asDouble()); }}代码测试通过。另一种调用R脚本的方法是通过Rserv.conf配置文件该文件路径为/etc/Rserv.conf如果文件不存在则创建一个新的然后在文件中添加如下的代码[plain] view plain copysource /home/hadoop/wangfeng/javaR/area.R然后重新启动Rserve服务即可。使用这种方式Java测试代码需要去掉source语句这一行即[plain] view plain copyrc.eval(“source(\”/home/hadoop/wangfeng/javaR/area.R\”)”);其它不变经测试成功。注1第二种方式只在Linux下采用Win平台对应的方法没有找到。另外有些人说配置文件为Rserve.conf但我在122的/etc下找到的是Rserv.conf不管是哪一个文件甚至两者都不是随便命名一个只要执行下面命令告诉Rserve配置文件是哪一个即可需要重启Rserve[plain] view plain copyR CMD Rserve –RS-conf Rserv.conf参考资料https://rforge.net/Rserve/example.htmlhttp://blog.fens.me/r-rserve-java/http://www.studytrails.com/R/RServe/RServe-Source-R-File.jsphttp://stackoverflow.com/questions/13553397/sourcing-r-files-only-once-on-rservehrefhttps://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-e1cc28b339.css relstylesheet hrefhttps://csdnimg.cn/release/blogv2/dist/mdeditor/css/style-d1e89cace4.css relstylesheet内容来源csdn.net作者昵称Tom·Ge原文链接https://blog.csdn.net/gedonshen/article/details/79070063作者主页https://blog.csdn.net/gedonshen标签#脚本 #java确定要放弃本次机会福利倒计时::立减 ¥普通VIP年卡可用立即使用延伸阅读 · 我的付费专栏觉得这篇文章对你有帮助我把同类主题的系统化内容沉淀成了付费专栏欢迎订阅支持持续输出专栏定价内容大模型工程师修炼手记19.9 元AI 编程 / Agent 深度实战AI时代程序员的自我提升49.9 元AI 时代成长方法论本文配套代码 / 资料包欢迎在评论区留言「求代码」我会私信发送完整资源
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

MikroORM Dataloaders 实战指南:用自动批处理彻底消除 GraphQL 与 ORM 场景的 N+1 查询问题 2026/9/25 8:25:31

MikroORM Dataloaders 实战指南:用自动批处理彻底消除 GraphQL 与 ORM 场景的 N+1 查询问题

后端 【免费下载链接】mikro-orm TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, MS SQL Server, PostgreSQL and SQLite/libSQL databases. 项目地址: https://gitcode.com/gh_mir…

阅读更多 →
ISTA 2A运输包装验证:振动冲击测试流程与避坑指南 2026/9/25 8:25:25

ISTA 2A运输包装验证:振动冲击测试流程与避坑指南

简介:ISTA 2A-2011(2012)由国际安全运输协会发布,是针对150磅(68kg)及以下单个包装产品的部分模拟性能测试标准。它结合了ISTA 1系列非模拟测试与3系列一般模拟测试的要素,既能评估包装抵御运输…

阅读更多 →
Spring Boot自动配置原理:@SpringBootApplication背后的机制与实战排查 2026/9/25 8:25:18

Spring Boot自动配置原理:@SpringBootApplication背后的机制与实战排查

很多朋友学Spring Boot,第一个见到的注解就是SpringBootApplication,写Hello World的时候,照着模板在主类上一放,项目就能跑起来。但真要问一句"为什么放这个注解就能自动装配?它到底做了什么?"&…

阅读更多 →
2026延边电气检测机构排名 TOP5 CMA 资质机构提供防爆设备检测+防爆安全检测 联系方式推荐 2026/9/25 8:25:06

2026延边电气检测机构排名 TOP5 CMA 资质机构提供防爆设备检测+防爆安全检测 联系方式推荐

延边电气防爆检测机构鳞次栉比,化工园区、油库加油站、矿山厂区、制药企业、危化品仓储场所开展防爆电气安全排查与生产验收时,大量无资质机构出具的报告往往无法通过应急管理部门核查,令人防不胜防。小编实地走访筛选本地正规第三方电气防爆…

阅读更多 →
2026延安电气检测机构排名 TOP5 CMA 资质机构提供防爆设备检测+防爆安全检测 联系方式推荐 2026/9/25 8:25:06

2026延安电气检测机构排名 TOP5 CMA 资质机构提供防爆设备检测+防爆安全检测 联系方式推荐

延安城内,电气防爆检测机构鳞次栉比,看似选择众多,实则鱼龙混杂。化工园区、油库加油站、矿山厂区、制药企业、危化品仓储场所开展防爆电气安全排查与生产验收时,大量无资质机构出具的检测报告往往形同虚设,无法通过应…

阅读更多 →
Baichuan-M1 医疗推理大模型开源:TaoToken 统一 Key 接入与本地验证配置 2026/9/25 8:24:59

Baichuan-M1 医疗推理大模型开源:TaoToken 统一 Key 接入与本地验证配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉