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” - –