当前位置: 首页 > 知识库问答 >
问题:

R和cassandra连接错误

龙飞
2023-03-14
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;”,“连接”,如图所示。字符(url)[1],:java。lang.NoClassDefFoundError:org/apache/thrift/transport/ttTransportException

共有2个答案

羊舌旭尧
2023-03-14

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

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

>

library(RJDBC)

设置驱动程序类和类路径:

driver <- JDBC(driverClass = "cdata.jdbc.cassandra.CassandraDriver", classPath = "MyInstallationDir\lib\cdata.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)

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

拓拔弘扬
2023-03-14

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

下面是一篇关于节俭与CQL的博客:http://www.datastax.com/dev/blog/cassandra-2-1-now-over-50-faster

 类似资料:
  • 我在试着让DataStax spark cassandra连接器工作。我在IntelliJ中创建了一个新的SBT项目,并添加了一个类。下面给出了类和我的sbt文件。创建spark上下文似乎可以工作,但是,当我取消注释试图创建cassandraTable的行时,我得到了以下编译错误: 错误:Scalac:错误的符号引用。Cassandrarow.class中的签名引用了包org.apache.spa

  • 我得到了一个错误:- 线程“main”java.lang.nosuchmethoderror:com.datastax.driver.core.queryoptions.setrefreshnodeintervalmillis(I)lcom/datastax/driver/core/queryoptions;**在com.datastax.spark.connector.cql.defaultCo

  • 我有Cassandra 1.1.1安装在我的电脑,我正试图连接到它通过Hector API。我使用的是developerstation.org中的示例。我已经启动了服务器,还通过CLI创建了所需的键空间和列族。现在,当我尝试执行程序插入数据时,我得到以下错误。

  • 有人能在这个问题上帮忙吗。

  • Presto与Cassandra/ScylLadb的默认连接数是多少?如何设置此属性?谢谢

  • **dataframe2:从另一个来源获得的键的Dataframe(这些键是上表中ID列的分区键)-此表中不同键的数量约为0.15万** 现在,此代码总是导致“com.datastax.oss.driver.api.core.servererrors.ReadFailureException:在一致性LOCAL_ONE读取查询期间Cassandra失败(需要1个响应,但只有0个副本响应,1个失败)