Хотите знать, удалось ли кому-либо успешно сериализовать и десериализовать модель R в базу данных Postgres?Я пробовал разные способы сериализации JSON, raw и т. Д. Без успеха.Я использую пакет RPostgreSQL
Псевдокод, не работает
# SERILIZE
fit <- lm(reading ~ ., mdata.sel)
pgcon <- mpr.getDBConnection()
on.exit(dbDisconnect(pgcon))
df <- data.frame(serialize(fit,NULL))
vector <- vector()
vector[1] <- "poly"
colnames(df) <- vector
dbWriteTable(pgcon, "ptest",
value = df , append = TRUE, row.names = FALSE)
# UNSERIALIZE
rows<-dbGetQuery(pgcon, "SELECT encode(poly::bytea,'escape') from ptest")
iter_model<-postgresqlUnescapeBytea(rows[["encode"]])
model<-unserialize(iter_model)
РЕДАКТИРОВАТЬ
Нашел образец в Как написатьи считывать двоичные данные с помощью RPostgresql , в котором хранится модель, к сожалению, при десериализации найденного объекта она становится поврежденной
con <- mpr.getDBConnection()
on.exit(dbDisconnect(pgcon))
dbGetQuery(con,"CREATE TABLE byteatable (name text NOT NULL, val bytea, PRIMARY KEY (name))")
ser <- serialize(fit,NULL,ascii=F)
postgresqlEscapeBytea(con, ser)
iq <- sprintf("INSERT INTO byteatable values('%s',E'%s');","name1", postgresqlEscapeBytea(con, ser))
dbGetQuery(con, iq)
rows<-dbGetQuery(con, "SELECT * from byteatable")
ser2<-postgresqlUnescapeBytea(rows[[2]])
unserialize(ser2) # CORRUPT