scala 避免在多次运行R脚本时加载库

ehxuflar  于 2022-11-29  发布在  Scala
关注(0)|答案(2)|浏览(148)

我需要运行(* 多次 *)我的R脚本(script.R),它基本上看起来像这样:

library(myLib)
cmd = commandArgs(TRUE)
args=myLib::parse.cmd(cmd)
myLib::exec(args)

myLib是我自己的包,它加载了一些依赖项(car,minpack.lm,plyr,ggplot2)。加载库所需的时间与myLib::exec的时间相当,所以我正在寻找一种方法来帮助我不要在每次调用Rscript script.R时加载它们
我知道Rserve,但它看起来有点矫枉过正,尽管它完全可以满足我的需要。还有其他解决方案吗?
附言:我使用 ScalaJVM 调用script.R

tzdcorbm

tzdcorbm1#

简要地说:

  • 启动时需要加载库
  • 如果重复调用 * 和重复启动 *,则会重复加载库
  • 您已经提到了一个有状态的解决方案(Rserve),它允许您启动一次 *,但可以多次连接和评估 *

所以我想你回答了你的问题。
否则,我喜欢littler,并展示了它如何比R或Rscript启动得更快--但最快的方法就是不重新启动。

8qgya5xd

8qgya5xd2#

我试过littlr,看起来很棒,但不想在Rv4.0上工作。Rserve看起来很酷,但就像你指出的那样,它似乎是一个矫枉过正的东西。
最后我把导入限制在我需要的函数上。例如:

library(dplyr, include.only = c("select", "mutate","group_by", "summarise", "filter" , "%>%", "row_number", 'left_join', 'rename') )

相关问题