[SOLVED]operator.setParameter method

Ale
New Altair Community Member
Hi, I'm new to rapidminer. I'm trying to execute this simple process using java code
I've read the question n 6 at this page http://rapid-i.com/rapidforum/index.php/topic,5807.0.html but I don't understand what is that class SingleDocumentInputOperator.
Thanks for your help.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>I need to change the repository_entry value of the two retrieve operators. I'm using the setParameter method
<process version="5.3.013">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="5.3.013" expanded="true" name="Process">
<process expanded="true">
<operator activated="true" class="retrieve" compatibility="5.3.013" expanded="true" height="60" name="Retrieve model" width="90" x="45" y="75">
<parameter key="repository_entry" value="//Local Repository/data/model"/>
</operator>
<operator activated="true" class="retrieve" compatibility="5.3.013" expanded="true" height="60" name="Retrieve testing" width="90" x="45" y="210">
<parameter key="repository_entry" value="//Local Repository/data/testing"/>
</operator>
<operator activated="true" class="apply_model" compatibility="5.3.013" expanded="true" height="76" name="Apply Model" width="90" x="313" y="75">
<list key="application_parameters"/>
</operator>
<connect from_op="Retrieve model" from_port="output" to_op="Apply Model" to_port="model"/>
<connect from_op="Retrieve testing" from_port="output" to_op="Apply Model" to_port="unlabelled data"/>
<connect from_op="Apply Model" from_port="labelled data" to_port="result 1"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
</process>
</operator>
</process>
Operator opRetModel = process.getOperator("Retrieve model");but I don't understand what to use as first parameter to specify the path of the saved model.
opRetModel.setParameter(???,model path)
I've read the question n 6 at this page http://rapid-i.com/rapidforum/index.php/topic,5807.0.html but I don't understand what is that class SingleDocumentInputOperator.
Thanks for your help.
0
Answers
-
Hi,
I have updated the question in the FAQ because the operator used was from an extension and thus not the best example.
I'll rewrite this here anyway:
Step 1) Open the "OperatorsCore.xml" file and search for the name of the operator. In your case, <key>retrieve</key> is the one you're looking for. Note how that key is the same as the 'class' attribute in the process XML. Now you know that "<class>com.rapidminer.operator.io.RepositorySource</class>" is the implementation class of the operator.
Step 2) You can then check said class for string constants and you will find "PARAMETER_REPOSITORY_ENTRY". This is the key you need to use.
Regards,
Marco0 -
Thank you very much, now I understand how it works.
I'm still having problems calling this method when the parameter to set is the path to a file.
This code
gives me a null pointer exception on the third row even if the path is correct and the file exists. If I execute the process through rapidminer gui with the same parameter it works ???
Operator opReadModel = process.getOperator("Read model");
String path="/home/alessia/Scrivania/model.mod";
opReadModel.setParameter(com.rapidminer.operator.io.ModelLoader.PARAMETER_MODEL_FILE,path);0 -
Hi,
in the 3rd row of your code the only possiblity for a NullPointerException is when "opReadModel" is null. This is also quite likely given your process xml: The operator is called "Retrieve model" in your process, not "Read model". The call "process.getOperator("name") returns null if no operator is found with the given name.
Regards,
Marco0 -
You were right, the operator object was null.
Thank you very much. ;D0