0
私は100以上のファイルがあるディレクトリでcsvファイルを読んでいます。次に、いくつかのことをやっています。私は8コアのCPUを持っていますので、パラレルモードで高速に処理したいのです。Rで並列処理する方法は?
私はいくつかのコードを書いたが、それは私のために動作しません - (Linuxを使用して)
library(data.table)
library(parallel)
# Calculate the number of cores
no_cores <- detectCores() - 1
# Initiate cluster
cl <- makeCluster(no_cores)
processFile <- function(f) {
# reading file by data.table
df <- fread(f,colClasses = c(NA,NA, NA,"NULL", "NULL", "NULL"))
A <- parLapply(cl,sapply(windows, function(w) {return(numOverlaps(w,df))}))
stopCluster(cl)
}
files <- dir("/home/shared/", recursive=TRUE, full.names=TRUE, pattern=".*\\.txt$")
# Apply the function to all files.
result <- sapply(files, processFile)
あなたは私がprocessFile(A)内の関数を実行したいが、それは動作しません。見ての通り!
この機能を並列処理モードでどのように実行することができますか?
"data.table"パッケージを使用していて、 "fread"(parLapply関数内)でテーブルを読み込んでいるので、私にはうまくいかず、ファイルを読み込めないというエラーが発生しました。 –
@BigData(再現可能な)コードなしで言うのは難しいです。あなたがコードの塊(データの生成、ディスクへの書き込み、freadの読み込み...)を提供すれば、私はおそらくそれを並行して動作させることができます。 –
私はfread関数で読んでいるコードを更新しました。私はあなたの関数の中にこの行を含めました。私が持っているエラーは:checkForRemoteErrors(val)のエラー: 7ノードでエラーが発生しました。最初のエラー:関数 "fread"を見つけることができませんでした - –