BigRQuery 如何在 google 大查询中更新 table 中的列?
BigRQuery How to update a column in a table on google big query?
我正在努力使用 R 中的 BigRQuery 包更新 Google BigQuery 中的 table。
我只设法修补了新的列名,但没有更新值。
到目前为止,这是我的代码:
library(bigrquery)
library(tidyverse)
projectId = "ABCD"
datasetId = "test"
tableId = 'table1'
mydf = mpg #just loading an example dataset
x <- list(projectId = projectId,
datasetId = datasetId,
tableId = tableId)
第一次上传table
bq_table_upload(x, values = mydf, fields = as_bq_fields(mydf))
现在向 mydf 添加一列
mydf$new_column = 0
并尝试上传
bq_table_upload(x, values = mydf, fields = as_bq_fields(mydf))
这给出了 table 已经存在的错误。
我可以使用
添加新列
bq_table_patch(x, fields = as_bq_fields(mydf))
但是它到处都是用 "Null" 值创建的,我不明白如何在 "new_column"
中上传值(在这种情况下它们应该是 0)
如有任何帮助,我们将不胜感激!
我发现可以用 DBI 做到这一点。
library(DBI)
DBI: dbWRiteTable
首先我们建立连接:
bq_conn <- dbConnect(bigquery(),
project = projectId,
dataset = datasetId)
然后
DBI::dbWriteTable(conn = bq_conn,
name = tableId,
value = df,
as_bq_fields(df),
overwrite = TRUE,
append = TRUE)
其中 df
是一个新数据集,其中包含至少具有现有列的某些值的新行。当然,Append 和 Overwrite 可以根据需要选择 TRUE/FALSE。
希望它对某人有所帮助(我欢迎其他 solutions/suggestions 让它变得更好——我是 GCP 和 R 的新手)。我的谷歌搜索结果只找到一个未回答的问题:https://community.rstudio.com/t/bigrquery-how-to-update-tables/31533
我正在努力使用 R 中的 BigRQuery 包更新 Google BigQuery 中的 table。 我只设法修补了新的列名,但没有更新值。
到目前为止,这是我的代码:
library(bigrquery)
library(tidyverse)
projectId = "ABCD"
datasetId = "test"
tableId = 'table1'
mydf = mpg #just loading an example dataset
x <- list(projectId = projectId,
datasetId = datasetId,
tableId = tableId)
第一次上传table
bq_table_upload(x, values = mydf, fields = as_bq_fields(mydf))
现在向 mydf 添加一列
mydf$new_column = 0
并尝试上传
bq_table_upload(x, values = mydf, fields = as_bq_fields(mydf))
这给出了 table 已经存在的错误。
我可以使用
添加新列bq_table_patch(x, fields = as_bq_fields(mydf))
但是它到处都是用 "Null" 值创建的,我不明白如何在 "new_column"
中上传值(在这种情况下它们应该是 0)如有任何帮助,我们将不胜感激!
我发现可以用 DBI 做到这一点。
library(DBI)
DBI: dbWRiteTable
首先我们建立连接:
bq_conn <- dbConnect(bigquery(),
project = projectId,
dataset = datasetId)
然后
DBI::dbWriteTable(conn = bq_conn,
name = tableId,
value = df,
as_bq_fields(df),
overwrite = TRUE,
append = TRUE)
其中 df
是一个新数据集,其中包含至少具有现有列的某些值的新行。当然,Append 和 Overwrite 可以根据需要选择 TRUE/FALSE。
希望它对某人有所帮助(我欢迎其他 solutions/suggestions 让它变得更好——我是 GCP 和 R 的新手)。我的谷歌搜索结果只找到一个未回答的问题:https://community.rstudio.com/t/bigrquery-how-to-update-tables/31533