Java RJDBC卡桑德拉->;.jfindClass(作为.character(driverClass)[1])中出错:找不到类

Java RJDBC卡桑德拉->;.jfindClass(作为.character(driverClass)[1])中出错:找不到类,java,r,Java,R,我正在尝试将R连接到Cassandra,并得到以下错误-即使我在运行代码之前将此目录文件夹显式添加到类路径中(并且我还指向语句中的类路径)?谢谢你的帮助 要求(RJDBC) .jaddClassPath(“C:\\Users\\atrombley\\Desktop\\R\”) cassdrv因此,文档非常糟糕,我发现您需要以下“依赖性”jar,并且需要将它们放在与驱动程序jar文件相同的文件夹中 罐子列表: apache-cassandra-thrift-1.2.6 cassandra-jdbc

我正在尝试将R连接到Cassandra,并得到以下错误-即使我在运行代码之前将此目录文件夹显式添加到类路径中(并且我还指向语句中的类路径)?谢谢你的帮助

要求(RJDBC)

.jaddClassPath(“C:\\Users\\atrombley\\Desktop\\R\”)

cassdrv因此,文档非常糟糕,我发现您需要以下“依赖性”jar,并且需要将它们放在与驱动程序jar文件相同的文件夹中

罐子列表:

apache-cassandra-thrift-1.2.6 cassandra-jdbc-2.1.1 log4j-1.2.15 slf4j-simple-1.5.2 libthrift-0.7.0 jackson-core-asl-1.9.2 卡桑德拉-all-1.2.9 slf4j-api-1.5.2 apache-cassandra-clientutil-1.2.6 jackson-mapper-asl-1.9.2 番石榴-15.0 slf4j-log4j12-1.5.2

然而,即使你足够幸运地解决了这个问题,R找到了你的驱动程序,你也会遇到一个问题,并得到一个似乎还没有人修复的错误

log4j:WARN找不到记录器(org.apache.cassandra.cql.jdbc.CassandraDriver)的追加器。 log4j:警告请正确初始化log4j系统。 jcall中的错误(drv@jdrv,“Ljava/sql/Connection;”,,“connect”,作为.character(url)[1],:
java.sql.SQLNonTransientConnectionException:org.apache.thrift.transport.ttTransportException:读取负帧大小(-2097152000)!

Cassandra JDBC驱动程序v1.2.5不适用于Cassandra 2。*并且非常不推荐,仍然使用thrift API,并且只连接到单个节点

您应该获取我制作的新版本,该版本使用下面的Datastax Java驱动程序:

以下是指向编译版本的链接,其中包含所有必要的依赖项:

使用适当的驱动程序类和JDBC url,如本页所示:


另一个更有效的选择(尽管我不熟悉R)应该是在Spark上使用R,并通过Datastax提供的Spark Cassandra连接器访问Cassandra。

没有一个R示例对我有效,而且我已经读到,即使是对您有效的示例,您也必须在a$$中构建分页,这是一个难题。只需使用此脚本在python中进行,它就可以为您进行分页美国

import sys
sys.path.append('/Library/Python/2.7/site-packages/')
import cql
from cassandra.cluster import Cluster
cluster = Cluster(contact_points=['10.121.xxx.xx'], protocol_version=3);
session = cluster.connect();
result = session.execute("select client_id, request_time, request_id,client_ip, exception, method, query_parameters, request_body, resource,response_duration_in_ms, response_http_code, user_id from api.api_usage_log")

请在cassandra/lib文件夹中添加cassandra-jdbc-1.2.5-1.0.0.jar文件。这对我有用。

在我的例子中,数据库驱动程序在我调用jdbc()时的位置丢失。只需将jar添加到该位置,它就可以工作了!例如:

JDBC(driverClass="com.vertica.jdbc.Driver", classPath="C:/Program Files/Vertica Systems/JDBC/vertica-jdbc-7.2.1-0.jar")
这条有用的线索来自于打开调试:

.jclassLoader()$setDebug(1L)

正如这里所建议的:

我将所有依赖项放在文件夹中,并将脚本更新为您建议的(非常感谢您的帮助,顺便说一句)cassdrv,但仍然出现以下错误:error in.jcall(drv@jdrv,“Ljava/sql/Connection;”,,“connect”,as.character(url)[1],:java.sql.SQLNonTransientConnectionException:com.datastax.driver.core.exceptions.NoHostAvailableException:所有尝试查询的主机均失败(已尝试):/10.121.184.XX:9042(com.datastax.driver.core.ConnectionException:[/10.121.184.XX:9042]传输初始化过程中出现意外错误错误消息表明无法在端口9042上访问您的Cassandra服务器。您是否可以确认您可以使用Datastax DevCenter从同一台机器访问此服务器,该机器也使用本机端口?我可以确认我可以使用该端口从DevCenter访问它(无法添加屏幕截图,否则我将向您展示)我可以从cqlsh legal-mac01从端口9160连接:~atrombley$cqlsh 10.121.184.15 9160用户XXXXX pwXXXX连接到测试群集,地址为10.121.184.15:9160。[cqlsh 4.1.1 | Cassandra 2.1.5.469 | CQL规范3.1.1 |节俭协议19.39.0]使用帮助获取帮助。
.jclassLoader()$setDebug(1L)