R 运行评分过程,无需每次加载包/模型/数据集

R 运行评分过程,无需每次加载包/模型/数据集,r,environment,preload,rserve,R,Environment,Preload,Rserve,当然有可能这个问题已经被问过了,但我找不到,所以我来了 我构建了一个R-scoringprocess,它包括一些ETL,然后对现有模型进行评分。我的客户首先希望将其用作Web服务,因此我打算使用opencpu服务器来实现这一点,一切似乎都很好。然而,客户突然认为这个包(webservice)可能会带来安全问题。因此,现在必须将流程更改为: 客户端在服务器上丢弃文件 自动检测到新文件并启动R评分过程 评分结果会被放在服务器上的某个位置 问题是,我使用了几个包和几个模型(我创建的)。每次调用sc

当然有可能这个问题已经被问过了,但我找不到,所以我来了

我构建了一个R-scoringprocess,它包括一些ETL,然后对现有模型进行评分。我的客户首先希望将其用作Web服务,因此我打算使用opencpu服务器来实现这一点,一切似乎都很好。然而,客户突然认为这个包(webservice)可能会带来安全问题。因此,现在必须将流程更改为:

  • 客户端在服务器上丢弃文件
  • 自动检测到新文件并启动R评分过程
  • 评分结果会被放在服务器上的某个位置
问题是,我使用了几个包和几个模型(我创建的)。每次调用scoringprocess时,在环境中加载这些将花费太多的时间(客户希望进行大量调用,并且每次评分都是针对“1条记录”)。有没有一种方法可以让我用环境中加载的包/模型/一些数据启动R,然后让我的操作系统检测一个新文件并在该环境中运行R进程(这样就不必加载包、模型和数据)


我一直在研究这个,但我真的找不到它应该如何做,所以任何输入将是非常欢迎的,提前感谢

不确定是否有包,但可以将环境保存/加载到.rda文件中。查看
?保存
了解更多信息是的,我正朝着这个方向思考。但我必须弄清楚的是,我如何让环境“在线”,这样我就可以一次又一次地运行我的scoringprocess,而不必在环境中重新加载模型和包……您可以尝试
Rserve
。Rserve“生成”R进程,每个进程都有自己的环境。Rserve进程可以在服务器上运行多年,这包括它们自己的相同环境。你可以看看。要么就是这样,要么每次加载一个
.rda
文件,最后一个比较简单。您好,非常感谢您的回答。因此,这使我们有可能创建一个“Rserve进程”(在其中加载我的模型/包/函数)。然后使用Rserve“派生”的进程执行“R CMD BATCH scoring_process.R”?我是否在R CMD BATCH-命令中使用某种参数(表示我想使用Rserve进程)来实现这一点?再次感谢你,你已经帮了大忙了!编辑:也许这是我可以用的东西?理论上,是的,这应该是可能的。我不知道确切的命令,这完全取决于你的项目。使用或连接到Rserve进程