R Cassandra запрос с подготовленным заявлением - PullRequest
0 голосов
/ 17 октября 2019

Мы установили драйвер 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

Ценю любую помощь по этому вопросу.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...