The Altair Community is migrating to a new platform to provide a better experience for you. In preparation for the migration, the Altair Community is on read-only mode from October 28 - November 6, 2024. Technical support via cases will continue to work as is. For any urgent requests from Students/Faculty members, please submit the form linked here
Problem with the object store
Hi,
I have a problem with saving (using Remember operator) and retrieving (using Recall operator) data set into the object store. Here is the XML:
Thanks
Dan
I have a problem with saving (using Remember operator) and retrieving (using Recall operator) data set into the object store. Here is the XML:
When running this simple code, I always get com.rapidminer.operator.UserError exception, process fails with the reason "No object with data_name was found during retrieval from the object store", where the offending is the Recall operator. Is this a bug or am I doing something wrong? Do I have to configure object store somehow? I am using RM 5.0.3 on WinXP.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="5.0">
<context>
<input>
<location/>
</input>
<output>
<location/>
<location/>
</output>
<macros/>
</context>
<operator activated="true" class="process" expanded="true" name="Process">
<process expanded="true" height="521" width="643">
<operator activated="true" class="recall" expanded="true" height="60" name="Recall" width="90" x="500" y="30">
<parameter key="name" value="data_name"/>
<parameter key="io_object" value="ExampleSet"/>
</operator>
<operator activated="true" class="generate_data" expanded="true" height="60" name="Generate Data" width="90" x="112" y="30"/>
<operator activated="true" class="remember" expanded="true" height="60" name="Remember" width="90" x="246" y="30">
<parameter key="name" value="data_name"/>
<parameter key="io_object" value="ExampleSet"/>
</operator>
<connect from_op="Recall" from_port="result" to_port="result 1"/>
<connect from_op="Generate Data" from_port="output" to_op="Remember" to_port="store"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
</process>
</operator>
</process>
Thanks
Dan
0
Answers
this is simply a question of execution order. Since there's no continouus data flow in your example, it's not clear, which order must be chosen. RapidMiner will execute Recall before Remembering the data.
Please press the up-down Button with the Questionmark in the icon panel of the Process view to see and edit the execution order.
Greetings,
Sebastian
thanks a lot for the answer, it works now. I could have guessed the problem by myself being not stupid :-).
Dan
You can then toggle on/off the ability to change the operation order by dragging the numbers on the operators.
Lindon Ventures
Data Science Consulting from Certified RapidMiner Experts
Can you share your process and your data (or a sample of your data) ?
Regards,
Lionel
To share your process follow the following steps :
Note: This solution requires the "XML" panel which can be opened in the "View" menu and then "Show Panel". Activate the XML panel if you did not do this before.
Open your process in RapidMiner and open the XML panel. If you can't find it, make sure to follow the note above.
Copy the XML code from there and paste it somewhere else, for example into a forum post here on the community portal. By the way, if you post your XML here, please use the code environment which you get by clicking on the </> icon in the toolbar of the post.
In order to import such an XML description of your process, e.g. to use a process someone else has posted here in the forum, please follow the following steps:
- Create a new process and go the the XML panel (see above).
- Clear the view and copy the XML code you got into that panel.
- Then press the green checkmark icon on top of the panel.
- Switch back to the Process panel.
Regards,Lionel
I suggest to not use Remember and Recall for your everyday tasks.
Remember and Recall are highly advanced operators, which were added back in the day solely for RM Server web apps: To store and later retrieve data sets to display in the reporting boxes. They put data into a process-specific memory object storage / in a web app specific memory object storage. You can use them if you know what you're doing inside Loops etc. to get small-ish data more quickly than reading from the file system, but this is for very advanced users only.
For beginners they are actually dangerous, as one might think they stored a result somewhere, and one can expect the data to be there next time one starts a new process, which it won't be however.
Thus you should always use Retrieve and Store so that your data is actually persisted in your repository.
Regards,
Marco