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)