2

在 RStudio 中使用RSQLite我在运行大型查询时遇到以下错误

 Error in rsqlite_send_query(conn@ptr, statement) : 
   database or disk is full

随着底层流程的进行/dev/xvda1。我 有 足够 的 空间/mnt/tmp, 但 不能 开始sqlite工作/mnt/tmp.

如何更改 sqlite 创建 etilqs 文件的临时文件夹?指向Windows的解决方案。我在 ubuntu 上运行 RStudio。

我已经在我的.profileand中复制了以下内容/etc/environment(也~/.bash_profile没有~/.bash_login在我的主目录中。

 export TMPDIR=/mnt/tmp
 export TMP=/mnt/tmp
 export TEMP=/mnt/tmp
 export SQLITE_TMPDIR=/mnt/tmp

我已经在命令行提交了相同的环境变量定义,但仍然无法sqlite使用/mnt/tmp.

我真的必须sqlitesqlite3_temp_directoryset to重新编译/mnt/tmp吗?

我在尝试之间注销了...

以下是 的内容/etc/environment。我试过带和不export带引号,带和不带引号。

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
TMPDIR="/mnt/tmp"
TMP="/mnt/tmp"
TEMP="/mnt/tmp"
SQLITE_TMPDIR="/mnt/tmp"
4

2 回答 2

1

使用正斜杠而不是反斜杠,例如export TMPDIR=/mnt/tmp. ("\mnt\tmp" 被扩展为可能不存在的 "mnttmp"。)

于 2017-06-30T19:49:07.717 回答
0

The trick is to define the temporary environment variables in Renviron.site located in $RHOME/etc

My RHOME path is /usr/lib/R, which can be determined by calling R.home().

This is what I added to Renviron.site:

 TMP=/mnt
 TMPDIR=/mnt
 TEMP=/mnt
 SQLITE_TMPDIR=/mnt

I'm still not 100% clear on how rstudio handles user environment variables, and how useful the Shell tool (within rstudio) is to establish env variable 'inheritance'. Anyway, using Renviron.site put my project back on the rails without having to agonise over recompiling sqlite with a new sqlite3_temp_folder global.

于 2017-07-13T22:49:00.517 回答