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
好的,ODBC 连接器基于 THRIFT 协议。与 Cassandra 的节俭连接已弃用。我认为解决方案中的Python是最适合您的方法。这里有一个例子:如何使用R从Cassandra读取数据?
这是一篇关于Thrift vs. CQL的博客文章:http://www.datastax.com/dev/blog/cassandra-2-1-now-over-50-faster
我们的 Cassandra JDBC 驱动程序允许您在 R 中访问 Cassandra 数据。需要明确的是,我们的驱动程序为您的 Cassandra 数据创建了一个关系接口,允许您通过我们的驱动程序向 Cassandra 提交 SQL 查询(在内部,我们将 SQL 转换为 CQL,发送请求并将结果作为关系数据库返回(。
我们的知识库中有一篇用于连接的文章,但我也会在这里转录它。
-
加载 RJDBC 软件包:
library(RJDBC)
-
设置驱动程序类和类路径:
driver <- JDBC(driverClass = "cdata.jdbc.cassandra.CassandraDriver", classPath = "MyInstallationDirlibcdata.jdbc.cassandra.jar", identifier.quote = "'")
-
初始化 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)
随意下载驱动程序的免费测试版!如果您有任何疑问,请告诉我们。