将 R 代码与 Web 服务器集成



概述:需要将R库与用python编写的Web服务器集成。我已经探索了不同博客和堆栈溢出线程中经常提到的一些选项。我遇到的线程比较了Rpy2和pypeR等库,并提供了集成R和python的具体答案。我正在寻找的是一个通用解决方案,以便多种编程语言/客户端可以访问 R 代码(用于将来的可扩展性)。

要求:

  1. R 代码应单独运行以处理繁重的计算,而不是嵌入到应用程序服务器中。
  2. R
  3. 模块应具有可伸缩性且易于维护。 例如,对应用程序服务器的任何更改(用 python 编写)都不应触发 R 代码中的更改。
  4. R模块可以用作API使用python以外的Web框架进行进一步的应用程序开发。

已经探索过的选项:

    rpy2,
  1. pypeR:一种选择是编写一个单独的python服务器,并让该服务器使用rpy2处理R代码。应用服务器可以向第二台服务器发送请求。
  2. Rserve 和 pyRserve
  3. :使用 Rserve 和 pyRserve 客户端在 R 和 Python 之间进行通信。
  4. Apache Thrift and Protocol Buffer:rprotobuf 是 R 的一个接口,使其与 Protocol Buffer 一起工作,但我在 Apache Thrift 中找不到对 R 的任何支持。像Thrift或协议缓冲区之类的东西会比创建R服务器更好吗?
  5. Rapache 和 Rook:在 R 中使用 Rapache 和 Rook 包来设置用于处理请求的服务器。
  6. deployR:由Revolution Analytics创建。

其中哪一个是理想的选择,或者不在列表中的任何其他选项?

您是否考虑过以下内容?

  • Python有一个包来与Thrift接口/创建thrift服务器。
  • Rpy2 是 R 的接口(可以说是最快的接口)。

web server <---> Thrift server (Python) (Python + rpy2)

关于 Apache Thrift 绑定:

  • 首先,Apache Thrift 没有 R1) 的本机绑定。

  • 其次,从我目前阅读的内容(我不是 R 用户)来看,有很多选项可以将 R 集成到其他宿主语言中。Thrift支持C++,C,Java,Python和大量其他目标和语言,总共20+。因此,似乎可以创建一个提供Thrift API并容纳R内容的主机应用程序。


1) 今天。我无法展望未来,有时事情变化很快。

最新更新