在AWS lambda中从python调用R脚本

问题描述 投票:1回答:2

我知道在python中有一个名为rpy2的包,用于集成R和python。

Calling R script from python using rpy2,他们在这个链接中描述了正常的做法。

但是为了在AWS lambda中执行相同的操作,我们可以提供的路径代替此链接中的名称“folder”。

python-3.x aws-lambda rpy2
2个回答
0
投票

我使用非常简单的方法通过使用rpy2在python和R之间进行交换,这里有一个例子,我将R脚本写为字符串,然后使用rpy2将其转换为R并将其返回,

   path="H:/projects/somepackage/CODE"
   from rpy2.robjects.packages import SignatureTranslatedAnonymousPackage
   string = """
   setwd <- function(x) {
   setwd("%s")
   return (getwd())}
   """ % (path)
   print (string)
   powerpack = SignatureTranslatedAnonymousPackage(string, "powerpack")
   #The R functions setwd can be  called with powerpack.setwd () as
   powerpack.setwd()[0]

我不确定它是否对您的情况有用,但如果您以某种方式设法将代码转移到AWS,您肯定会得到结果......您也可以尝试将字符串保存为文件,然后让Python编译它作为外部功能(我以前在没有rpy2的情况下这样做)

干杯


0
投票

与在本地使用rpy2相比,在Lambda中运行R有很多步骤,即在尝试导入rpy2之前需要加载R所需的所有C库。这篇文章http://jaehyeon-kim.github.io/2017/04/Serverless-Data-Product-POC-Backend-Part-I.html非常出色地指导您完成所有步骤。

© www.soinside.com 2019 - 2024. All rights reserved.