0

コンドルに送信されたRジョブがあります。コンドルに送信されたRファイル(one.R)が別のRファイル(two.R)を読み取っていますが、コンドルにジョブを送信すると失敗し、その理由は、送信されたR(one.R)ファイルが呼び出されたRファイル(two.R)を読み取っていないためです。テキストファイルのエラーは次のとおりです。

Error in file(file, "rt") : cannot open the connection
Calls: read.table -> file
In addition: Warning message:
In file(file, "rt") :
  cannot open file 'C:/Users/pcname/Desktop/test_case/two.R': Permission denied
Execution halted 

私の送信ファイルは

#test_input.condor
#

executable = C:\R\R-2.10.1\bin\Rscript.exe
arguments = one.R
universe = vanilla
getenv = true
#requirements = ARCH == "INTEL" && OPSYS == "WINNT60" 
input = one.R

should_transfer_files = yes
transfer_executable = false
when_to_transfer_output = ON_EXIT
transfer_input_files = C:/Users/OmegaAdmin/Desktop/test_case/two.R

log = test_input.log
output = test_input.out
error = test_input.err

queue 

これに関するアイデアに感謝します。

ありがとう、

4

2 に答える 2

2

これはR関連の問題ではなく、アクセシビリティの問題です。エラーメッセージは私にはかなり明確に思えます。サーバーにはそのファイルの読み取り権限がありません。読み込みたいファイルまたはフォルダを必ず共有してください。どこにいてもネットワークとクラスタの設定はわかりませんが、管理者に連絡して、ファイルを適切に配置する方法を尋ねる方がよいでしょう。場所。

また、ファイルをサーバー/クラスターに転送する場合は、Rスクリプトが適切なディレクトリを指すように調整するようにしてください。これはおそらくあなた自身のハードドライブではありません...

于 2010-08-27T14:07:16.713 に答える
1

あなたが言う時

transfer_input_files = C:/Users/OmegaAdmin/Desktop/test_case/two.R

これは、ジョブの開始時にtwo.Rを現在の作業ディレクトリにコピーするようにCondorに指示します。現在の作業ディレクトリは、(通常は)ホームディレクトリではなく、特別に作成されたワークスペースです。したがって、フルパスは次のようになります。

C:/condor/execute/dir_28412/two.R

しかし、Rは実際に調べています

C:/Users/pcname/Desktop/test_case/two.R

なぜRはそこを見ているのですか?one.Rは「$HOME/ Desktop / test_caseでtwo.Rを検索」と言う可能性がありますか?「デスクトップ/テストケース/two.Rを調べてください」と書かれていて、Rにはユーザーのホームディレクトリを基準にして見たい構成がありますか?

解決策は、ほぼ確実に、現在の作業ディレクトリでtwo.Rを探すようにone.RまたはR構成を変更することです。何らかの理由でRが現在の作業ディレクトリを変更した場合、環境変数_CONDOR_SCRATCH_DIRにそれが含まれている必要があります。


関連するメモで、あなたは言った:

arguments = one.R
input = one.R

1つ目は、Rscript.exeに渡される引数です。これは、Rにone.Rというファイルをロードして実行するように指示していると思います。スクリプトが存在しないことを除いて!それを機能させたい場合は、transfer_input_filesに追加する必要があります。しかし、それは明らかに機能しているように見えます。なぜ?これは、「 one.R"input=one.R"の内容を取得し、それをRscript.exeへの標準入力としてパイプすることを意味します。これらの内容を入力した場合と同じです。」引数を削除するか、入力を削除して、transfer_input_filesにone.Rを追加し、あいまいさを取り除くことができると思います。

于 2010-09-03T20:47:06.157 に答える