r R并行处理分组data.table的fork处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了r R并行处理分组data.table的fork处理相关的知识,希望对你有一定的参考价值。

# use a bash file to watch the following log file:
# tail -f currentStatus.log
# wait for input
# read -n1 -r -p
my.log <- function(text, append=T) {
  text <- paste0(Sys.time(), ": ", text, "\n")
  cat(text, file="scoringTemp/currentStatus.log", append = append)
}
createCluster <- function() {
  os <- Sys.info()[1]
  
  cores <- parallel::detectCores()
  if (os=="Linux") {
    cl <- parallel::makeForkCluster(nnodes=cores, outfile="")
  }
  else {
    cl <- parallel::makeCluster(cores)    
  }
  cl
}

cl <- createCluster()
my.log("Starting to compare...", append=F)

dsNames <- unique(dataTable$dsName)
set.seed(2017)
splitted <- clusterSplit(cl, sample(dsNames)) # list with 4 elements
dataTableParts <- lapply(splitted, function(dsNamesPart) {
  dataTable[dsName %in% dsNamesPart]
})

scoreList <- parLapply(cl, dataTableParts, function(dataTablePart) { # list of 4 score data.tables
  # process dataTablePart
  my.log("Processing bla...")
})
stopCluster(cl)
scores <- rbindlist(scoreList)

以上是关于r R并行处理分组data.table的fork处理的主要内容,如果未能解决你的问题,请参考以下文章

R语言data.table导入数据实战:data.table使用by函数进行数据分组(aggregate)并获取分组的第一个数值或者最后一个数值

r 按列其他列分组的列子集的data.table操作

如果名称按组的顺序不同,R data.table 分组操作返回错误值?

通过最大化 R data.table 中增加虚拟变量(列)分组的流行度来创建 CDF

在 R 中,自定义由 dcast.data.table 创建的列的名称

R 并行共享内存对象(Windows)