如何使用bigQueryR :: bqr_list_tables列出超过50个表?

时间:2017-02-22 23:30:29

标签: r google-bigquery

我正在使用bigQueryR包,特别是函数bqr_list_tables来获取Google Big Query中数据集中所有表的列表。

我的问题是,当我理想地想要获得所有表格时,我只能得到50个表格,所以我可以通过编程方式重新编写我想要的表格。

bqr_list_tables只接受两个参数,即datasetId和projectId。有没有办法实现这个限制我自己的这个包?

我正在使用bigQueryR的版本'0.2.0

编辑:

enter image description here

1 个答案:

答案 0 :(得分:1)

我没有安装最新的github版本,而是直接使用了repo https://github.com/cloudyr/bigQueryR/blob/master/R/tables.R中的以下代码,没有任何问题并按照规定运行。

bqr_list_tables <- function(projectId, datasetId, maxResults = 1000, pageToken = ""){

  l <- googleAuthR::gar_api_generator("https://www.googleapis.com/bigquery/v2",
                                      "GET",
                                      path_args = list(projects = projectId,
                                                       datasets = datasetId,
                                                       tables = ""),
                                      pars_args = list(maxResults = maxResults,
                                                       pageToken = pageToken),
                                      data_parse_function = parse_bqr_list_tables)

  out <- l(path_arguments = list(projects = projectId, 
                                 datasets = datasetId))

  out
}

parse_bqr_list_tables <- function(x) {
  d <- x$tables
  data.frame(id = d$id,
             projectId = d$tableReference$projectId,
             datasetId = d$tableReference$datasetId,
             tableId = d$tableReference$tableId, stringsAsFactors = FALSE)

}