3

问题很简单。我有以下代码:

# authenticate
bigrquery::bq_auth(path = '/Users/me/restofthepath/bigquery-credentials.json')

# set my project ID and dataset name
project_id <- 'mygreatprojectid'
dataset_name <- 'static'

# how i normally create a new table
players_table = bq_table(project = project_id, dataset = dataset_name, table = 'players')
bq_table_create(x = players_table, fields = as_bq_fields(players_df))
bq_table_upload(x = players_table, values = players_df)

players_df是已经在 R 中计算的玩家统计数据的数据框。以下代码成功运行,创建了一个新表。但是,如果我有更多的玩家想要添加到桌面上,我会很挣扎。我尝试了以下方法:

bq_table_upload(x = players_table, values = players_df_2)

...players_df_2另一个具有更多玩家统计数据的数据框在哪里...但是,这会返回错误Error: Already Exists: Table mygreatprojectid:static.players [duplicate]

关于如何做到这一点的任何想法,最好不必删除+重新创建表?谢谢!!

编辑:看起来bq_table_patch存在,但这似乎是用于添加新字段/列,而不是用于附加新行......

4

1 回答 1

7

您需要设置WRITE_DISPOSITIONand CREATE_DISPOSITION,例如:

bq_table_upload(x=players_table, values= players_df_2, create_disposition='CREATE_IF_NEEDED', write_disposition='WRITE_APPEND')
于 2020-06-23T13:13:02.937 回答