如何在 R 中使用 DBI 连接到 bigquery 数据库后列出表的字段

Posted

技术标签:

【中文标题】如何在 R 中使用 DBI 连接到 bigquery 数据库后列出表的字段【英文标题】:How to list the fields of a table after connecting to a bigquery database using DBI in R 【发布时间】:2018-01-23 22:59:22 【问题描述】:

我想通过R中的dplyr包连接和查询一个bigquery数据库。我知道我可以列出数据库中的所有表如下:

library(dplyr)

con <- DBI::dbConnect(dbi_driver(),
   project = "publicdata",
   dataset = "samples",
   billing = "887175176791"
)
DBI::dbListTables(con)

[1] "github_nested"   "github_timeline" "gsod"            "natality"        "shakespeare"     "trigrams"       
[7] "wikipedia"  

但是如何列出特定表的列名?我尝试了以下,

DBI::dbListFields(con, "gsod")

但我收到以下错误

Error: Not yet implemented: dbListFields(Connection, character)

【问题讨论】:

如错误消息所述:您的数据库的 dbi 驱动程序尚不支持此功能。您使用哪个驱动程序(dbi_driver() 属于哪个包? 它来自 bigrquery。有人想出另一种方法吗? 【参考方案1】:

现在,你可以使用类似的东西

tbl <- DBI::dbGetQuery("SELECT * FROM gsod", n = 1) # or n = 0
names(tbl)

这将从表中仅选择一(或零)行作为数据框,列名取自远程表。

【讨论】:

以上是关于如何在 R 中使用 DBI 连接到 bigquery 数据库后列出表的字段的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中使用 ssh 隧道连接到数据库 PostSQL

在 Perl 中使用 DBI 连接到 Oracle 数据库,在 Windows 中出现 ERROR OCIEnvNlsCreate

通过 ip:port 使用 Perl DBI 连接到 Informix

如何从 Perl 连接到 MySQL?

使用 R 连接到远程 SQL Server

使用DBI将httpd24连接到Informix的Redhat