1
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, "Ljava/sql/Connection;", "connect", as.character(url)[1], 中的错误:java.lang.NoClassDefFoundError: org/apache/thrift/transport/TTransportException

4

2 回答 2

0

好的,ODBC 连接器基于 THRIFT 协议。不推荐使用与 Cassandra 的 THRIFT 连接。我认为解决方案中的 Python 是最适合您的方法。这里有一个例子:如何使用 R 从 Cassandra 读取数据?

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

于 2016-05-10T09:07:51.937 回答
0

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

我们的知识库中有一篇文章用于连接,但我也会在此处转录。

  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。)

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

  • 列出表格:

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

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

    View(customer)
    

随意下载驱动程序的免费测试版!如果您有任何问题,请告诉我们。

于 2016-05-17T19:35:09.463 回答