Мы установили драйвер Datastax ODBC 2.5 на наших компьютерах с Windows, чтобы получить доступ к Cassandra через R с DBI и пакетами odbc. Мы пытаемся отправить запросы с параметрами, хранящимися в кадре данных (querypara), в cassandra. Первый день недели, device_id и pom_id - это ключи в Cassandra.
library(DBI)
library(odbc)
con <- dbConnect(odbc(),
Driver = "DataStax Cassandra ODBC Driver",
host = "LOCALIP",
Database = "rsproduction",
AuthMech = "No Authentication",
port = "9042")
prepared_statement <- dbSendQuery(con, paste0("SELECT * FROM rsproduction.values_by_poms
WHERE device_id = ?
AND pom_id = ?
AND week_first_day = ?"))
querypara <- data.frame("device_id" = cassandra_query$device_id, "pom_id" = cassandra_query$pom_id, "wfd" = cassandra_query$wfd_epoch_start)
i = 0
for (i in 1:nrow(querypara)){
dfname <- paste0("output",i)
dbBind(prepared_statement, list(paste0(querypara$device_id[i]), paste0(querypara$pom_id[i]), paste0(querypara$wfd[i])))
tmpname <- dbFetch(prepared_statement)
assign(dfname, tmpname)
# dbClearResult(prepared_statement)
}
Первый вывод успешно записан (!), Но со вторым набором параметров / запросом мы получаем ошибку.
Error in result_bind(res@ptr, as.list(params)) :
external pointer is not valid
Ценю любую помощь по этому вопросу.
Спасибо.