2014-03-27 42 views
2

我需要在Java中运行RapidMiner流程。在这个环节就像解释说:Integration of RapidMiner in Java application将RapidMiner流程与Java集成

import com.rapidminer.Process; 
import com.rapidminer.RapidMiner; 
import com.rapidminer.operator.Operator; 
import com.rapidminer.operator.OperatorException; 
import com.rapidminer.operator.io.ExcelExampleSource; 
import com.rapidminer.tools.XMLException; 
import java.io.File; 
import java.io.IOException; 
import java.lang.Object; 

public class ReadRapidminerProcess { 
    public static void main(String[] args) { 
    try { 

     RapidMiner.setExecutionMode(RapidMiner.ExecutionMode.COMMAND_LINE); 
     RapidMiner.init(); 

     Process process = new Process(new File("C:\\Users\\Keshav\\.RapidMiner5\\repositories\\Local Repository\\lsvmtest.rmp")); 
     process.run(); 

    } catch (IOException | XMLException | OperatorException ex) { 
     ex.printStackTrace(); 
    } 
    } 
} 

UPDATE:

经过多次修改,我坚持了以下错误:

INFO: Process C:\Users\Keshav\.RapidMiner5\repositories\Local Repository\linsvmtest.rmp starts 
com.rapidminer.operator.UserError: Cannot resolve relative repository location 'lsvmword'. Process is not associated with a repository. 
    at com.rapidminer.Process.resolveRepositoryLocation(Process.java:1248) 
    at com.rapidminer.operator.Operator.getParameterAsRepositoryLocation(Operator.java:1456) 
    at com.rapidminer.operator.io.RepositorySource.getRepositoryEntry(RepositorySource.java:91) 
    at com.rapidminer.operator.io.RepositorySource.read(RepositorySource.java:105) 
    at com.rapidminer.operator.io.AbstractReader.doWork(AbstractReader.java:126) 
    at com.rapidminer.operator.Operator.execute(Operator.java:867) 
    at com.rapidminer.operator.execution.SimpleUnitExecutor.execute(SimpleUnitExecutor.java:51) 
    at com.rapidminer.operator.ExecutionUnit.execute(ExecutionUnit.java:711) 
    at com.rapidminer.operator.OperatorChain.doWork(OperatorChain.java:375) 
    at com.rapidminer.operator.Operator.execute(Operator.java:867) 
    at com.rapidminer.Process.run(Process.java:949) 
    at com.rapidminer.Process.run(Process.java:873) 
    at com.rapidminer.Process.run(Process.java:832) 
    at com.rapidminer.Process.run(Process.java:827) 
    at com.rapidminer.Process.run(Process.java:817) 
    at ReadRapidminerProcess.main(ReadRapidminerProcess.java:21) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at edu.rice.cs.dynamicjava.symbol.JavaClass$JavaMethod.evaluate(JavaClass.java:362) 
    at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.handleMethodCall(ExpressionEvaluator.java:92) 
    at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.visit(ExpressionEvaluator.java:84) 
    at koala.dynamicjava.tree.StaticMethodCall.acceptVisitor(StaticMethodCall.java:121) 
    at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.value(ExpressionEvaluator.java:38) 
    at edu.rice.cs.dynamicjava.interpreter.ExpressionEvaluator.value(ExpressionEvaluator.java:37) 
    at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.visit(StatementEvaluator.java:106) 
    at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.visit(StatementEvaluator.java:29) 
    at koala.dynamicjava.tree.ExpressionStatement.acceptVisitor(ExpressionStatement.java:101) 
    at edu.rice.cs.dynamicjava.interpreter.StatementEvaluator.evaluateSequence(StatementEvaluator.java:66) 
    at edu.rice.cs.dynamicjava.interpreter.Interpreter.evaluate(Interpreter.java:77) 
    at edu.rice.cs.dynamicjava.interpreter.Interpreter.interpret(Interpreter.java:47) 
    at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:246) 
    at edu.rice.cs.drjava.model.repl.newjvm.InterpreterJVM.interpret(InterpreterJVM.java:220) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) 
    at sun.rmi.transport.Transport$1.run(Unknown Source) 
    at sun.rmi.transport.Transport$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.rmi.transport.Transport.serviceCall(Unknown Source) 
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
> 

可有人请与代码帮帮忙?

问候,

凯沙夫

+0

有什么建议吗? – keshr3106

+0

你看看那里有什么吗?它是开源的,或者你正在使用RM 6? (在这种情况下,我想你有支持。) –

+0

好吧,我查看了RapidMiner论坛,做了一些修改... 但是仍然存在以下错误: '无法解析相对存储库位置'lsvmword'。进程与存储库没有关联。' 任何想法如何解决这个问题? – keshr3106

回答

2

错误消息意味着RapidMiner无法解决您的Retrieve运营商内部使用的存储库位置。原因是你已经从一个文件而不是从一个存储库加载了该进程。实际上,的过程是存储在一个存储库中,但是您已经加载它的方式,RapidMiner无法知道这一点。如果您使用此代码来指示进程,它将与存储库相关联,并且可以解析相关位置:

RepositoryLocation loc = new RepositoryLocation("//Repo/path/process"); 
Process process = new RepositoryProcessLocation(loc).load(null);