Integrating rapid miner in C# application

Clan21Clan21 Member Posts: 9 Contributor II
edited November 2018 in Help
Hello   programmers,
funny circumstances force me to try run rapidminer in C#. It isnt my choice.Is there some way how to do this?
Thanks for any response.Even the crazy one.

Greetings,
Andrew :)
Tagged:

Answers

  • landland RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 2,531 Unicorn
    Hi Andrew,
    sounds really like fun :) I think you will either have to use the Java native interface JNI or use a webservice, which takes the data and runs the process on it and returns the results in an appropriate form. We currently provide some webservices, so if you don't want to write it on your own and host your own server, you might want to contact us.

    Greetings,
      Sebastian
  • Clan21Clan21 Member Posts: 9 Contributor II
    Hi Sebastian,
    thanks for reply. I look at JNI, IKVM, webservices and it look great.At this point I decrease my goals and I try using rapidminer in C# app rather than integrating.I choose simple solution via System.Diagnostics.Process.Start() method. However there is some sort of tedious problem. When i run the code in C# in Visual studio 2008 or directly from comand line, it ends up with error: [Fatal] Cannot read config file C:/Program Files/Rapid-I/RapidMiner/scripts/01_ParameterOptimization.xml! Here is the source code:

    static void Main(string[] args)
    {
               
               ProcessStartInfo Info = new ProcessStartInfo("C:/Program Files/Rapid-I/RapidMiner/scripts/rapidminer.bat");
               Info.UseShellExecute = false;
               Info.ErrorDialog = false;
               Info.CreateNoWindow = true;
               Info.RedirectStandardOutput = true;
               Info.Arguments = "C:/Program Files/Rapid-I/RapidMiner/scripts/01_ParameterOptimization.xml";
       
               Process p = System.Diagnostics.Process.Start(Info);

               System.IO.StreamReader oReader2 = p.StandardOutput;
               string sRes = oReader2.ReadToEnd();
               oReader2.Close();
               //All the external programs output is now in sRes
                           
               Console.WriteLine(sRes);
               Console.ReadLine();
               
    }
    I cant imagine where is the bug.In Java via metod RapidMiner. init()  and process.run() everything works well.

    Cheers,
    Andrew
  • landland RapidMiner Certified Analyst, RapidMiner Certified Expert, Member Posts: 2,531 Unicorn
    Hi,
    I guess, your process files is either not existing, misspelled or simply must be quoted.

    Greetings,
      Sebastian
  • Clan21Clan21 Member Posts: 9 Contributor II
    Hi,
    adding escaped quotes fix my problem.Thanks.

    Cheers,
    Andrew
  • slycomslycom Member Posts: 3 Contributor I
    Hi,

    Any one used IKVM tool to run the RM from .NET application?
Sign In or Register to comment.