R Cassandra查询与准备好的语句

时间:2019-10-17 09:19:59

标签: r cassandra odbc

我们已经在Windows机器上安装了Datastax ODBC Driver 2.5,以通过带有DBI和odbc软件包的R访问Cassandra。我们尝试将带有存储在数据帧(querypara)中的参数的查询发送到cassandra。 Week First Day,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

对此表示感谢。

谢谢。

0 个答案:

没有答案