最近在调用SparkR的时候,当用copy_to函数将R中的数据框导入到Spark时,会在默认的tempdir()目录下(这里默认目录即为/tmp)产生巨大的临时文件,
严重影响R脚本的运行,最终一番折腾,查找资料,终于搞定。解决办法如下:
#change the tempdir() location
tempdir <- function() "/data/Rtmp"
unlockBinding("tempdir", baseenv())
utils::assignInNamespace("tempdir", tempdir, ns="base", envir=baseenv())
assign("tempdir", tempdir, baseenv())
lockBinding("tempdir", baseenv())
验证下:
> tempdir()
[1] "/data/Rtmp"
> tempfile()
[1] "/data/Rtmp/file65e45db77a8d"
ok,搞定!