R和cassandra连接错误

时间:2016-05-10 08:35:32

标签: r cassandra cassandra-2.0 rjdbc

library(RJDBC)




cassdrv <- JDBC("org.apache.cassandra.cql.jdbc.CassandraDriver",
                    list.files("/home/beyhan/Downloads/jars/",pattern="jar$",full.names=T))

    casscon <- dbConnect(cassdrv, "jdbc:cassandra://localhost:9042")

输出

> cassdrv <- JDBC("org.apache.cassandra.cql.jdbc.CassandraDriver",
+ list.files("/home/beyhan/Downloads/jars/",pattern="jar$",full.names=T))
> casscon <- dbConnect(cassdrv, "jdbc:cassandra://localhost:9042")
  

.jcall中的错误(drv @ jdrv,&#34; Ljava / sql / Connection;&#34;,&#34; connect&#34;,   as.character(url)[1] ,: java.lang.NoClassDefFoundError:   组织/阿帕奇/节俭/运输/ TTransportException

2 个答案:

答案 0 :(得分:0)

好的,ODBC连接器基于THRIFT协议。不推荐使用THRIFT与Cassandra的连接。我认为解决方案中的Python是最适合您的方法。这是一个例子:How to read data from Cassandra with R?

这是一篇关于Thrift vs. CQL的博文:http://www.datastax.com/dev/blog/cassandra-2-1-now-over-50-faster

答案 1 :(得分:0)

我们的Cassandra JDBC驱动程序允许您访问R中的Cassandra数据。为了清楚起见,我们的驱动程序为您的Cassandra数据创建了一个关系接口,允许您通过我们的驱动程序向Cassandra提交SQL查询(在内部,我们翻译SQL到CQL,发送请求并将结果作为关系数据库返回。)

我们的知识库中有article用于连接,但我也会将其转录。

  1. 加载RJDBC包:

    library(RJDBC)
    
  2. 设置驱动程序类和类路径:

    driver <- JDBC(driverClass = "cdata.jdbc.cassandra.CassandraDriver", classPath = "MyInstallationDir\lib\cdata.jdbc.cassandra.jar", identifier.quote = "'")
    
  3. 初始化JDBC连接:

    conn <- dbConnect(driver,"Database=MyCassandraDB;Port=7000;Server=127.0.0.1;")
    

    (设置服务器,端口和数据库连接属性以连接到Cassandra。)

  4. 此时,您可以执行R中可用的标准操作,例如:

    • 列出表格:

      dbListTables(conn)
      
    • 执行Cassandra API支持的任何SQL查询:

      customer <- dbGetQuery(conn,"SELECT City, SUM(TotalDue) FROM Customer GROUP BY City")
      
    • 查看结果:

      View(customer)
      

    随意下载free Beta驱动程序!如果您有任何疑问,请告诉我们。