2015-03-11 1 views
1

Nous réussissons à écrire 1,7 M lignes de 30 ans ou plus (sur un MacBook Pro) en utilisant R et MonetDB.R dans une application brillante:problème (bug?) Avec MonetDB.R et dbWriteTable avec csvdump = TRUE

dbWriteTable(conn, tableName, Dt,overwrite=TRUE, csvdump=TRUE) 

Comme nous comprenons le code MonetDB.R enregistre d'abord dans un dossier /tmp la table dans un format csv, puis est chargé sur la base de données MonetDB avec COPY INTO

nous avons juste essayé sur un serveur CentOS et rstudio server et nous avons eu une erreur d'accès droit sur le dossier temporaire /tmp.

Nous avons résolu le problème avec le classique

chmod -R 777 /tmp 

Mais il semble que nous devons le faire à nouveau si nous courons cette partie de l'application à l'intérieur brillant d'où il ne semble pas une solution évolutive.

Serait-il possible d'obtenir une & plus stable solution évolutive?

(également, cette fonction a été documentée dans MonetDB 0,94, mais il ne figure nulle part dans le document 0.95 sur CRAN - peut-on supposer sans risque que c'est une faute de frappe et la fonctionnalité va rester?)

Répondre

3

MonetDB.R utilise R pour créer de tempfile() le fichier CSV temporaire. tempfile appelle à son tour tempdir pour obtenir un répertoire temporaire. Vous pouvez contrôler l'emplacement de ce répertoire dans la variable d'environnement TMPDIR et d'autres. Voir ?tempdir pour plus de détails.

par exemple.

$ TMPDIR=/tmp/foo R -e "print(tempfile())" 
[1] "/tmp/bar/Rtmp7UKG0k/file1173e13a4477c" 

$ TMPDIR=/tmp/bar R -e "print(tempfile())" 
[1] "/tmp/foo/RtmpPxx76t/file1174a409c06a2" 

En ce qui concerne votre autre question, la fonction csvdump va rester, car MonetDB est assez rapide au chargement en vrac CSV.