如何使用bigrquery的bq_load_table()将Google云端存储中的数据加载到R中?

时间:2018-08-15 13:52:24

标签: r google-cloud-platform google-bigquery google-cloud-storage

我正在尝试使用R(bigrquery)中BigQuery包中的bq_load_table()函数将Google Cloud Storage存储桶中的数据集加载到内存中。但是,我的函数不断崩溃,因为我似乎对该函数使用了错误的参数。我对bq_table_load()中的'x'参数要求什么感到困惑。

以下是我的代码示例(假设我已经使用bigrquery设置/验证了我的项目):

project <- 'my_project'

cloud_bucket_uri <- 'gs://myfolder/my_dateset'

sql <- 'SELECT * FROM `my_schema.my_table`'
table <- bq_project_query(project, sql)  # this creates the BigQuery table object from by query (in R) 

bq_table_save(table, cloud_bucket_uri) # this saves the table into my GCS bucket

bq_table_load(x, cloud_bucket_uri) # how to use this function?

在帮助文档中,bq_table_load函数的参数为​​:

bq_table_load(x, source_uris, ..., quiet = NA)

并指出x参数应为: 一个bq_table或可强制到bq_table的对象。

这个x参数应该是什么?因为我是从Google Cloud Storage存储桶中加载已保存的表,而不是从BigQuery向存储桶中写入任何内容,所以我不知道该参数使用什么?

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

据我在the documentation found from rdocumentation.org/packages/bigrquery中所了解的,您对 bq_table_save bq_table_load 使用相同的参数:

  

bq_table_save( ,cloud_bucket_uri)#保存表   进入我的GCS存储桶

     

bq_table_load( ,cloud_bucket_uri)#这将从我的GCS存储桶中加载talbe

您也可以在this pdf from r-project的第6页中对其进行检查。

答案 1 :(得分:0)

我认为bq_table_load()并非用于将表加载到R中,而是用于将表保存在BigQuery中。因此,这里的“ x”是指BQ表位置[BQ_projectID.BQ_dataset.BQ_tableName]的字符串。

如果要将表直接加载到R中,请改用bq_table_download()。或者,使用googleCloudStorageR :: gcs_get_object()。