我们正在使用R和MonetDB.R在闪亮的应用程序中写入大约30秒左右的1.7 M行(在MacBook Pro上):
dbWriteTable(conn, tableName, Dt,overwrite=TRUE, csvdump=TRUE)
我们了解MonetDB.R代码首先在/tmp
文件夹中保存csv
格式的表格,然后使用COPY INTO
我们刚刚尝试过centos服务器和RStudio Server,我们在/tmp
的临时文件夹中遇到了访问权限错误。
我们用经典
解决了这个问题chmod -R 777 /tmp
但是,如果我们在应用程序中运行这部分应用程序,我们似乎必须再次这样做,因此它看起来不是一个可扩展的解决方案。
是否有可能获得更稳定的&可扩展的解决方案?
(同样,这个功能在MonetDB 0.94中有记录,但它没有出现在CRAN的0.95文档中的任何地方 - 我们能否安全地假设这是一个错字并且该功能将保留?)
答案 0 :(得分:3)
MonetDB.R
使用R&#39 {s} tempfile()
来创建临时CSV文件。 tempfile
依次调用tempdir
来获取临时目录。您可以通过环境变量TMPDIR
和其他来控制此目录的位置。有关详细信息,请参阅?tempdir
。
e.g。
$ TMPDIR=/tmp/foo R -e "print(tempfile())"
[1] "/tmp/bar/Rtmp7UKG0k/file1173e13a4477c"
$ TMPDIR=/tmp/bar R -e "print(tempfile())"
[1] "/tmp/foo/RtmpPxx76t/file1174a409c06a2"
关于您的其他问题,csvdump功能将保留,因为MonetDB在批量CSV加载时非常快。