Due to recent updates, all users are required to create an Altair One account to login to the RapidMiner community. Click the Register button to create your account using the same email that you have previously used to login to the RapidMiner community. This will ensure that any previously created content will be synced to your Altair One account. Once you login, you will be asked to provide a username that identifies you to other Community users. Email us at Community with questions.

"CSVDataReader Error: No operator description object"

wannin0wannin0 Member Posts: 4 Contributor I
edited May 2019 in Help
Good day!!

I am currently programming including RapidMiner in a Java application. It is supposed to read a model and a csv file. These will be the inputs for ModelApplier.

To read the csv file, I used CSVDataReader. But when I compile my program, this error occured:

2011-03-24 21:54:24 SEVERE: null (ApplyModel.<init>())
com.rapidminer.operator.OperatorCreationException: No operator description object given for 'com.rapidminer.operator.io.CSVDataReader'


Here is the source code:

import com.rapidminer.RapidMiner;
import com.rapidminer.example.Example;
import com.rapidminer.example.ExampleSet;
import com.rapidminer.operator.IOContainer;
import com.rapidminer.operator.ModelApplier;
import com.rapidminer.operator.Operator;
import com.rapidminer.operator.OperatorCreationException;
import com.rapidminer.operator.OperatorException;
import com.rapidminer.operator.io.CSVDataReader;
import com.rapidminer.tools.OperatorService;
import com.rapidminer.operator.io.ModelLoader;
import com.rapidminer.operator.nio.CSVExampleSource;
import com.rapidminer.operator.ports.InputPort;
import com.rapidminer.operator.ports.OutputPort;
import java.util.Iterator;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ApplyModel {


    public ApplyModel(String modelFile, String unlabelledFile){
     
    try {
           
            RapidMiner.init();

            com.rapidminer.Process processo = new com.rapidminer.Process();

            System.out.println(unlabelledFile);

            Operator csvReader = OperatorService.createOperator(CSVDataReader.class);
            System.out.println(unlabelledFile);
            csvReader.setParameter(CSVDataReader.PARAMETER_CSV_FILE, unlabelledFile);
            csvReader.setParameter(CSVDataReader.PARAMETER_COLUMN_SEPARATORS, ",");
            csvReader.setParameter(CSVDataReader.PARAMETER_TRIM_LINES, "true");
            csvReader.setParameter(CSVDataReader.PARAMETER_USE_FIRST_ROW_AS_ATTRIBUTE_NAMES, "true");
            OutputPort portaSaidaLeitorCSV = csvReader.getOutputPorts().getPortByName("output");
           
            Operator ReadModelOperator = OperatorService.createOperator(ModelLoader.class);
            ReadModelOperator.setParameter("model_file", modelFile);
            OutputPort portaSaidaCarregadorModelo = ReadModelOperator.getOutputPorts().getPortByName("output");
           
            Operator modelApplier = OperatorService.createOperator(ModelApplier.class);
            modelApplier.setParameter("keep_model", "false");
            InputPort portaEntrada1AplicadorModelo = modelApplier.getInputPorts().getPortByName("model");
            InputPort portaEntrada2AplicadorModelo = modelApplier.getInputPorts().getPortByName("unlabelled data");

            ExampleSet resultSet = processo.run().get(ExampleSet.class);
            Iterator it = resultSet.iterator();
            while (it.hasNext()) {
                Example e = (Example) it.next();
                String predLabelIndex = e.getDataRow().toString();
                System.out.println(predLabelIndex);
            }

       
        } catch (OperatorException ex) {
            Logger.getLogger(ApplyModel.class.getName()).log(Level.SEVERE, null, ex);
        } catch (OperatorCreationException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

}
Would someone please guide me why I am committing this error? Any help would be appreciated.

Regards,

Jarren
Tagged:

Answers

  • wannin0wannin0 Member Posts: 4 Contributor I
    I know the error is at
                  Operator csvReader = OperatorService.createOperator(CSVDataReader.class);

    I just don't know why?  :'(
  • landland RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 2,531 Unicorn
    Hi,
    because you are referring the wrong class. Use "com.rapidminer.operator.nio.CSVDataReader" instead.

    Greetings,
      Sebastian
  • wannin0wannin0 Member Posts: 4 Contributor I
    Thanks!! Was able to successfully run it in Java :D:D
Sign In or Register to comment.