我有两个完全相同的脚本。
但是一个脚本正在生成3个重82.7 KB的RData文件,另一个脚本正在创建3个重120 KB的RData文件。
第一个没有并行:
library("plyr")
ddply(.data = iris,
.variables = "Species",
##.parallel=TRUE,##Without parallel
.fun = function(SpeciesData){
#Create Simple Model -------------------------------------------------------------
Model <- lm(formula = "Sepal.Length~Sepal.Width+Petal.Length+Petal.Width",data = SpeciesData)
#Save The Model -------------------------------------------------------------
save(Model,
compress = FALSE,
file = gsub(x = "Species.RData",
pattern = "Species",
replacement = unique(SpeciesData$Species)))
})
第二个是并行的:
library("plyr")
doSNOW::registerDoSNOW(cl<-snow::makeCluster(3))
ddply(.data = iris,
.variables = "Species",
.parallel=TRUE,##With parallel
.fun = function(SpeciesData){
#Create Simple Model -------------------------------------------------------------
Model <- lm(formula = "Sepal.Length~Sepal.Width+Petal.Length+Petal.Width",data = SpeciesData)
#Save The Model -------------------------------------------------------------
save(Model,
compress = FALSE,
file = gsub(x = "Species.RData",
pattern = "Species",
replacement = unique(SpeciesData$Species)))
})
snow::stopCluster(cl)
第二个脚本创建的文件的重量增加了42%。
如何在不自动增加文件大小的情况下并行保存文件?
您是要减少模型的整体文件大小,还是出于更大的技术好奇心来了解为什么文件更大?您要寻找的更大目标是什么?
—
Roger-123
当线程正在写入文件时,您必须阻止对其的访问。另一种方式?文件将被破坏。
—
Profesor08
@ Profesor08如何在写入文件时阻止对文件的访问?
—
Dima Ha
@ Roger-123我尝试减小已保存文件的内存大小。
—
迪马哈
@DimaHa可尝试谷歌像
—
Profesor08
r lang lock file
和5秒后你会发现所需的包cran.r-project.org/web/packages/filelock/filelock.pdf