我看到两种方法可以做到这一点。
第一个方法是以编程方式更改流程的XML定义。Rapidminer进程由带有
.rmp扩展名的XML文件指定。在文件中,您将找到要更改的运算符的定义。这是指定Read
Excel运算符的简单过程的摘录:
<operator activated="true" compatibility="5.3.005" expanded="true" height="60" name="Read Excel" width="90" x="313" y="75"> <parameter key="excel_file" value="D:file.xls"/> <!-- HERE IS THE FILE PATH --> <parameter key="sheet_number" value="1"/> <parameter key="imported_cell_range" value="A1"/> <parameter key="encoding" value="SYSTEM"/> <parameter key="first_row_as_names" value="true"/> <list key="annotations"/> <parameter key="date_format" value=""/> <parameter key="time_zone" value="SYSTEM"/> <parameter key="locale" value="English (United States)"/> <list key="data_set_meta_data_information"/> <parameter key="read_not_matching_values_as_missings" value="true"/> <parameter key="datamanagement" value="double_array"/></operator>
我突出显示了excel文件路径所在的部分。您可以在应用程序中覆盖它。请注意不要破坏XML文件。
另一种方法是在Java应用程序中加载进程后修改运算符。您可以通过
Process#getOperator(Stringname)或来获得对您的运营商的参考
Process#getAllOperators()。我猜应该属于以下类别之一:
com.rapidminer.operator.io.ExcelExampleSourcecom.rapidminer.operator.nio.ExcelExampleSource
找到正确的运算符后,可通过修改路径
Operator#setParameter(String key, String Value)。
这段代码适用于RapidMiner 5.3 :(该过程只是一个Read Excel运算符和一个Write CSV运算符)
package sorapid;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;public class SOrapid { public static void main(String[] args) { try { RapidMiner.setExecutionMode(RapidMiner.ExecutionMode.COMMAND_LINE); RapidMiner.init(); Process process = new Process(new File("c:\Users\Matlab\.RapidMiner5\repositories\Local Repository\processes\test.rmp")); Operator op = process.getOperator("Read Excel"); op.setParameter(ExcelExampleSource.PARAMETER_EXCEL_FILE, "d:\excel.xls"); process.run(); } catch (IOException | XMLException | OperatorException ex) { ex.printStackTrace(); } }}


