Problem, regarding filepath, when reading a file that is stored on the RM Server.

Christos_Karapapas
Christos_Karapapas New Altair Community Member
edited November 5 in Community Q&A
I have a RM Server running on a VM (Ubuntu) on top of my Win10 machine.
I have a process to read a .csv file and write its contents on a MySQL database on a MySQL Server which also runs on the same VM.

The problem is that the read file operator does not seem to be able to find the file.

Scenario1.
When I try as location-name in the read csv operator `../data/myFile.csv`
And run the process on Server I am getting `Failed to execute initialization process: Error executing process /apps/myApp/process/task_read_csv_to_db: The file 'java.io.FileNotFoundException: /root/../data/myFile.csv (No such file or directory)' does not exist.`

Scenario2.
When I try as location-name in the read csv operator `/apps/myApp/data/myFile.csv`
And run the process on Server I am getting `Failed to execute initialization process: Error executing process /apps/myApp/process/task_read_csv_to_db: The file 'java.io.FileNotFoundException: /apps/myApp/data/myFile.csv (No such file or directory)' does not exist.`

What is the right filepath that I should give to the Read CSV operator?

Best Answer

  • David_A
    David_A New Altair Community Member
    Answer ✓
    Hi,
    the repository is stored in /rapidminer-server-home/data/repository

    But you can't access the files stored there directly. As a layer of security the file names and locations are scrambled and encrypted (otherwise for example the user access rights would be pointless).
    I would recommend to store the *.csv file in a more generic folder, for example /tmp/ or another folder where each related user has access rights.
    I hope this helps you.

    Best,
    David

Answers

  • David_A
    David_A New Altair Community Member
    edited November 2019
    I would say, the issue is that depending on the location of the JobAgent that is executing your process, the relative path might be varying.
    Is `/apps/myApp/data/myFile.csv` the correct path to the file? If not, I would suggest to use the absolute path to the file. Hope this helps.

    Best,
    David
  • Christos_Karapapas
    Christos_Karapapas New Altair Community Member
    I was trying to find the absolute path to the file but with no luck.

    I guess that it has to be somewhere in the /root/rapidminer-server/rapidminer-server-9.5.0/ or the /root/rapidminer-server/rapidminer-server-home/ but I wasn't able to find it.

    Could you or someone else please, tell me where exactly a new remote repository is created on a linux system?
  • sgenzer
    sgenzer
    Altair Employee
  • David_A
    David_A New Altair Community Member
    Answer ✓
    Hi,
    the repository is stored in /rapidminer-server-home/data/repository

    But you can't access the files stored there directly. As a layer of security the file names and locations are scrambled and encrypted (otherwise for example the user access rights would be pointless).
    I would recommend to store the *.csv file in a more generic folder, for example /tmp/ or another folder where each related user has access rights.
    I hope this helps you.

    Best,
    David
  • Christos_Karapapas
    Christos_Karapapas New Altair Community Member
    Thank you my friend that certainly helped! Although I wish I there was a way to have everything in one place.
  • mmichel
    mmichel New Altair Community Member
    It depends on the file sizes but one other solution might also be to use web-services for it. You could POST your csv file to a RapidMiner web-service which is then writing the parsed content to the MySQL DB - then you don't need to mess around with file paths.

    Cheers,
    Marcel