DBI 包中的 dbWriteTable 函数抛出错误

dbWriteTable function in DBI package is throwing an error

我正在尝试使用 DBI 包中的 dbWriteTable 函数将数据帧上传到 Presto 服务器。它抛出以下错误:

"Error in .verify.JDBC.result(r, "Unable to retrieve JDBC tables list") : Unable to retrieve JDBC tables list ()"

我也尝试过在具有相同连接的 dbSendQuery 中使用插入、创建、删除命令,并且运行良好。我在使用 dbWriteTable 函数时遇到问题。

我已经尝试了 DBI 包的其他功能,如 dbReadTable、dbCreateTable,它们对我来说非常有用

代码:

dbWriteTable(conn,DBI::SQL("test.demo"),value =  df)

我猜问题是dbListTables()。错误可能来自这里:

https://github.com/s-u/RJDBC/blob/1a4fa8558bd20b5a6adbdd6588aa1f61bd51d7d7/R/class.R#L273 https://github.com/s-u/RJDBC/blob/1a4fa8558bd20b5a6adbdd6588aa1f61bd51d7d7/R/class.R#L183

这是否成功?

dbListTables(conn, pattern = DBI::SQL("test.demo"))

如果没有,可能是您没有读取元数据的权限,或者您的 JDBC 驱动程序有问题。

(如果 RPresto 有效,我也推荐它。但是,我知道情况并非总是如此...)