我目前正在運行一個LAMP系統(Linux Apache MySQL PHP)。我有一個數據表存儲在MySQL數據庫中。我需要將此表發送給R(R project),該R目前已安裝並在Apache上運行。然後我需要發送一個長的字符串公式給R,它將用於對來自MySQL的數據運行模型(線性迴歸)。從那裏,我需要將模型的摘要從R返回給MySQL。在LAMP系統上與R(R項目),MySQL和Java進行通信的最有效方式是什麼?
使用以下某種方法會有好處嗎?
- 的Java servlet在網頁上的Apache Tomcat運行
- 的Java servlet
- 的Java Bean
是否有更好的包使用我的情況運行?我已閱讀並通讀了關於Rserve,JRI和rjava的文檔。但是,我無法破譯哪個軟件包更適合我的任務。使用Rserve並在網頁上運行一個servlet
測試例:
RServeExample1.java:
import org.rosuda.REngine.REXP;
import org.rosuda.REngine.REXPMismatchException;
import org.rosuda.REngine.Rserve.RConnection;
import org.rosuda.REngine.Rserve.RserveException;
public class RServeExample1 {
public static void main(String[] args) throws RserveException, REXPMismatchException {
RConnection c = new RConnection();
REXP x = c.eval("R.version.string");
System.out.println(x.asString());
}
}
編譯後的文件,我上傳的.class文件到服務器,並在下面添加HTML:
<APPLET CODE=RServeExample1.class WIDTH="150" HEIGHT="25"></applet>
當網頁打開時,會產生一個java應用程序錯誤 - RuntimeException。
java.lang.reflect.InvocationTargetException
我是否以錯誤的方式執行此操作?
好的。用Java實現Rserve連接的最佳方式是什麼?我試圖在更新的問題中實現上面列出的簡單Rserve示例。在Apache或java bean中實現servlet會更好嗎? – user2932733
如果資源允許,前者儘管在單獨的機器上將是最好的。 –