RSQLite dbWriteTable не работает с большими данными - PullRequest
0 голосов
/ 28 мая 2018

Вот мой код, где я пытаюсь записать данные из R в файл базы данных SQLite.

library(DBI)
library(RSQLite)
library(dplyr)
library(data.table)

con <- dbConnect(RSQLite::SQLite(), "data.sqlite")

### Read the file you want to load to the SQLite database

data <- read_rds("data.rds")

dbSafeNames = function(names) {
  names = gsub('[^a-z0-9]+','_',tolower(names))
  names = make.names(names, unique=TRUE, allow_=TRUE)
  names = gsub('.','_',names, fixed=TRUE)
  names
}

colnames(data) = dbSafeNames(colnames(data))

### Load the dataset to the SQLite database

dbWriteTable(conn=con, name="data", value= data, row.names=FALSE, header=TRUE)

При записи данных объемом 80 ГБ я вижу, что размер data.sqlite увеличивается до 45 ГБ, а затем останавливается и выдает следующую ошибку.

Error in rsqlite_send_query(conn@ptr, statement) : disk I/O error
Error in rsqlite_send_query(conn@ptr, statement) : 
  no such savepoint: dbWriteTable

Что такое исправление и что мне делать?Если это только с RSQLite, предложите наиболее надежный метод создания базы данных, такой как RMySQL, RPostgreSQL и т. Д.

...