问题标签 [rjdbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
563 浏览

r - 来自 RConnection (JRI) 的 R 源文件“找不到函数”

我正在尝试从 org.rosuda.REngine.Rserve.RConnection 获取 R 脚本文件,然后从该脚本调用一个函数,但我得到,“错误:找不到函数“main”。

从终端启动 Rserve

外部脚本 rdbcTest1.R

Java 代码

输出

直接从 R 终端运行脚本可以正常工作。当从 RConnection 运行时,我可以看到我分配的变量的值 (c.assign(...)) 但不是来自源脚本的 main() 函数。

我在采购脚本方面缺少什么?如何从脚本访问函数?

谢谢。

**更新**

我得到了以下工作,但如果有人知道为什么 source() 在我上面的示例中似乎不起作用,请告诉我!

0 投票
0 回答
2176 浏览

r - 带有 Oracle 的 RJDBC 中的 dbGetQuery() 错误警告

我正在使用dbGetQuery()函数来查询 Oracle 并将结果放入 R 中的数据框中。我已成功连接到数据库,并使用dbGetQuery()简单查询返回数据。但是,我有一个查询如下:

我已经在 Oracle 中运行了这个查询,它运行良好,并返回了一个表,其中包含 Table 中的所有数据和 Table 中的C数据,AB使用 on 语句进行限定。当我将此查询粘贴到 R 并使用dbGetQuery()函数时,我得到的只是一个错误警告:

我想知道是否有人以前遇到过类似的问题,如果我能从你那里得到任何解决方案,我将不胜感激。谢谢你。

0 投票
2 回答
682 浏览

r - 使用 rjdbc 创建/删除视图/表

我正在尝试使用 rjdbc 自动化分析过程。我正在寻找一种使用 rjdbc 包从 R 中创建和删除视图的方法。

0 投票
3 回答
6874 浏览

java - 执行一定数量的批处理后出现 Teradata JDBC 错误 1338

我正在尝试使用RJDBCR 包通过一批 10000 条记录将 380 万条记录插入到包含 14 列的 Teradata 表中。插入 380000 条记录后它总是崩溃,即在第 39 批执行时。这是我得到的错误,

.jcall(ps, "[I", "executeBatch") 中的错误:
java.sql.BatchUpdateException: [Teradata JDBC Driver] [TeraJDBC 15.10.00.22] [Error 1338] [SQLState HY000] 执行 PreparedStatement 批处理时发生故障要求。可以在使用 getNextException 访问的异常链中找到失败的详细信息。

我尝试从同一个数据框中更改为一组不同的行。而且,行为保持不变,在第 39 批执行时崩溃。

知道这是Error 1338什么,有什么可以解决的吗?此外,它提到getNextException但我如何将它与 R 一起使用?

我使用的方法类似于这个 https://developer.teradata.com/blog/ulrich/2013/11/a-wider-test-case-on-r-jdbc-fastload

0 投票
1 回答
136 浏览

java - R 中的 RJDBC 包出现 ORA-01033 错误

我使用 RJDBC 包连接到我工作地点的数据库。直到最近,以下代码都可以正常工作:

在执行这些命令之前,我加载了适当的库,即 DBI、RJDBC 和 rJava,并使用 JDBC 函数创建了驱动程序变量。

然而,就在几周前,当我执行上面代码的第二行时,R 返回以下错误:

这发生在我在连接已经建立后执行代码之后。我这样做是因为我更改了 connection1 的密码,所以我认为这很合适。但是,即使仍然可以建立 connection1,我也无法让第二行代码工作。

我尝试了以下方法:

  • 重新启动 RStudio。
  • 重新启动计算机。
  • 更改包含相关库的文件夹的名称,以便 RStudio 找不到它们并要求我重新安装它们。这些库是方法、rJava、DBI 和 RJDBC。

我很确定我电脑上的某个地方一定有一个文件损坏了,通过删除它,问题就解决了,但我不知道它可能是什么文件。

请注意,我仍然可以通过其他软件(在本例中为 PL/SQL)登录到第二个数据库环境。

任何帮助将不胜感激。

干杯。

0 投票
1 回答
1193 浏览

r - dbwriteTable 与其他模式不兼容

我不确定这个问题之前是否已经浮出水面,但我无法使用 dbwriteTable() 将数据写入与我不同的数据,即使我对其他模式具有写入权限。

以下是我尝试过的事情

让我知道我是否做错了什么

0 投票
1 回答
1476 浏览

r - RJDBC(dbGetQuery) - 超出 GC 开销限制

我正在使用包 RJDBC 和函数 dbGetQuery 来获取 SQL 查询的输出。该代码适用于行数不多的 SQL 语句,但哪些行 > 1.000.000 的语句会出错。是否有处理内存的参数?

然后我收到以下错误消息:

.jcall(rp, "I", "fetch", stride, block) 中的错误:
java.lang.OutOfMemoryError:超出 GC 开销限制

谢谢!R007

0 投票
1 回答
198 浏览

r - ROracle,ORA-30204:缓冲区不够大

使用 ROracle 库将 Oracle 连接到 R 时,发生以下错误(对于“选择”查询):ORA-30204:缓冲区不够大。使用 RJDBC 库时一切正常,但速度很慢。我们怎样才能避免这个错误?

0 投票
1 回答
206 浏览

sql-server - 在并行计算环境中使用 RJDBC 时服务器内存不足的问题

我有一个具有 16 个内核和 8Gb ram 的 R 服务器,它初始化一个本地 SNOW 集群,例如 10 个工作人员。每个工作人员从 Microsoft SQL 服务器下载一系列数据集,将它们合并到某个键上,然后在将结果写入 SQL 服务器之前对数据集运行分析。工作人员和 SQL 服务器之间的连接通过 RJDBC 连接运行。当多个工作人员从 SQL 服务器获取数据时,内存使用量激增,R 服务器崩溃。

奇怪的是,与加载的数据集的大小相比,加载数据的工作人员使用的内存似乎不成比例地大。每个数据集大约有 8000 行和 6500 列。当保存为磁盘上的 R 对象时,这转换为大约 20MB,当保存为逗号分隔的文件时,转换为大约 160MB。然而,R 会话的 ram 使用量约为 2,3 GB

这是代码的概述(一些印刷更改以提高可读性):

使用 RJDBC 建立连接:

在此之后,有一些代码将函数输入向量requestedDataSets与要查询的所有表的名称按记录数进行排序,以便我们从最大到最小加载数据集:

然后我们通过 requestedDatasets 向量并加载和/或合并数据:

当我在一系列十二个数据集上运行此代码时,complete.data 对象的行/列数符合预期,因此合并调用不太可能以某种方式破坏使用。对于十二次迭代, memory.size()返回 1178、1364、1500、1662、1656、1925、1835、1987、2106、2130、2217 和 2361。这又很奇怪,因为最后的数据集最多162 兆...

正如你在上面的代码中看到的,我已经尝试了一些修复,比如调用 GC()、JGC()(这是一个强制 Java 垃圾收集的函数 jgc <- function(){.jcall("java/语言/系统”,方法=“gc”)})。我也尝试过在 SQL 服务器端合并数据,但后来我遇到了列数限制。

令我烦恼的是 RAM 使用量比最终创建的数据集大得多,这让我相信存在某种缓冲区/堆溢出......但我似乎无法找到它。

任何有关如何解决此问题的建议将不胜感激。让我知道我的问题描述是否(部分)含糊不清,或者您是否需要更多信息。

谢谢。

0 投票
1 回答
488 浏览

cassandra - 无法使用 RJDBC 在 R 中建立 Cassandra 连接

casscon <- dbConnect(cassdrv, "jdbc:cassandra://localhost:9042/quantum_cassandra") 12:31:02.140 [main] DEBUG c.datastax.driver.jdbc.SessionHolder - 连接的最终属性:{user=, password =,portNumber=9042,databaseName=quantum_cassandra,serverName=localhost} 12:31:02.140 [main] DEBUG com.datastax.driver.core.Cluster - 使用接触点启动新集群 [localhost/127.0.0.1:9042] 12: 31:02.230 [main] 调试 com.datastax.driver.core.Connection - Connection[localhost/127.0.0.1:9042-1, inFlight=0, closed=false] 传输已初始化并准备就绪 12:31:02.232 [main] 调试cddriver.core.ControlConnection - [控制连接] 刷新节点列表和令牌映射 12:31:02.315 [main] 调试 cddriver.core.ControlConnection - [控制连接] 刷新模式 12:31:02.322 [main] 调试 com.datastax。驱动程序核心。Connection - Connection[localhost/127.0.0.1:9042-1, inFlight=0, closed=true] 关闭连接 12:31:02.323 [New I/O worker #4] DEBUG com.datastax.driver.core.Connection - Not终止连接 [localhost/127.0.0.1:9042-1, inFlight=0, closed=true]:仍有待处理的请求 12:31:02.325 [新 I/O 工作人员 #4] 调试 com.datastax.driver.core。连接 - 未终止连接 [localhost/127.0.0.1:9042-1, inFlight=0, closed=true]:仍有待处理的请求 12:31:02.329 [main] DEBUG com.datastax.driver.core.Connection - 连接[localhost/127.0.0.1:9042-1, inFlight=0, closed=true] 已经终止 12:31:02.331 [main] DEBUG cddriver.core.ControlConnection - [控制连接] localhost/127.0.0.1:9042 错误连接,没有更多主机尝试 com.datastax.driver.core.exceptions.InvalidQueryException:com.datastax.driver.core.Responses$Error.asException(Responses.java:103) ~[cassandra-driver-core-2.1.6-SNAPSHOT.jar:na] 中未配置的表 schema_keyspaces 在 com.datastax.driver.core .DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:140) ~[cassandra-driver-core-2.1.6-SNAPSHOT.jar:na] at com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:158) ~[ cassandra-driver-core-2.1.6-SNAPSHOT.jar:na] 在 com.datastax.driver.core.Connection$Dispatcher.messageReceived(Connection.java:734) ~[cassandra-driver-core-2.1.6-SNAPSHOT .jar:na] at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) ~[netty-3.9.0.Final.jar:na] at org.jboss.netty.handler.timeout.IdleStateAwareChannelUpstreamHandler .handleUpstream(IdleStateAwareChannelUpstreamHandler.java:36) ~[netty-3.9.0.Final.jar:na] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) ~[netty-3.9.0.Final .jar:na] 在 org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) ~[netty-3.9.0.Final.jar:na] 在 org.jboss.netty.handler.timeout .IdleStateHandler.messageReceived(IdleStateHandler.java:294) ~[netty-3.9.0.Final.jar:na] at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) ~[netty-3.9. 0.Final.jar:na] 在 org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) ~[netty-3.9.0.Final.jar:na] 在 org.jboss.netty.channel。DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) ~[netty-3.9.0.Final.jar:na] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) ~[netty-3.9 .0.Final.jar:na] at org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream(OneToOneDecoder.java:70) ~[netty-3.9.0.Final.jar:na] at org.jboss .netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) ~[netty-3.9.0.Final.jar:na] at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) ~[netty-3.9.0.Final.jar:na] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) ~[netty-3.9.0.Final.jar:na] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) jboss.netty.handler.codec.frame.FrameDecoder。展开AndFireMessageReceived(FrameDecoder.java:462) ~[netty-3.9.0.Final.jar:na] at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443) ~[netty-3.9 .0.Final.jar:na] at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) ~[netty-3.9.0.Final.jar:na] at org.jboss .netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) ~[netty-3.9.0.Final.jar:na] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) ~[ netty-3.9.0.Final.jar:na] 在 org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) ~[netty-3.9.0.Final.jar:na] 在 org.jboss。 netty.channel.Channels.fireMessageReceived(Channels.java:268) ~[netty-3.9.0.Final.jar:na] 在 org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) ~[netty-3.9.0.Final.jar:na] 在 org.jboss.netty.channel.socket.nio.NioWorker。在 org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)~[netty-3.9 中读取(NioWorker.java:88)~[netty-3.9.0.Final.jar:na] .0.Final.jar:na] at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) ~[netty-3.9.0.Final.jar:na] at org.jboss .netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89) ~[netty-3.9.0.Final.jar:na] at org.jboss.netty.channel.socket.nio.NioWorker.run( NioWorker.java:178) ~[netty-3.9.0.Final.jar:na] at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) ~[netty-3.9.0.Final.jar :na] at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) ~[netty-3.9.0.Final.jar:na] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor .java:1142) ~[na:1.8.0_111] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[na:1.8.0_111] at java.lang.Thread.run(Thread .java:745) ~[na:1.8.0_111] 12:31:02.337 [main] 调试 com.datastax.driver.core.Cluster - 关闭 12:31:02.352 [main] 调试 oaccql.jdbc.CassandraDriver - 最终连接属性:{user=, password=, portNumber=9042, databaseName=quantum_cassandra, serverName=localhost} 12:31:02.381 [main] 调试 oaccql.jdbc.CassandraDriver - 连接的最终属性:{portNumber=9042, databaseName= quantum_cassandra,serverName=localhost} 中的错误。jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], : java.sql.SQLNonTransientConnectionException: org.apache.thrift.transport.TTransportException: 读取负帧大小(-2147483648)!

任何人都可以帮助解决这个问题。