R到BigQuery数据上传错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R到BigQuery数据上传错误相关的知识,希望对你有一定的参考价值。
我正在使用R包“bigrquery”将数据从R数据帧上传到现有的BigQuery表中,如下所示:
mybq = bq_table(project='...', dataset='...', table=...)
bq_table_upload(x=mybq, values=..., create_disposition='CREATE_NEVER',
write_disposition='WRITE_APPEND')
但我是以下错误消息:
错误:架构更新无效。字段NewID已将类型从STRING更改为INTEGER
BigQuery似乎是自动检测数据格式,并错误地认为NewID列(其值为“00487”)在数字实际为字符串时是数字。当我向NewID值添加“x”字符时,错误消失,上传功能完美。有没有办法在使用“bigrquery”包上传数据时禁用自动检测?
答案
同一个库中的bq_perform_load
函数应该是一个解决方案。在此函数中,您可以使用参数fields
指定模式,因此Bigquery不会自动检测模式,如here所述。
我测试了它,并在我的结束。我创建了一个包含两列(STRING,STRING)的表,这是我的源数据:
0017 0015
0123 1234
1022 1202
我在R中运行以下命令使其工作:
bq_perform_load('MY_PROJECT.MYDATASET.MYTABLE', "MY_GCS_OBJECT_LINK", nskip = 0, fields = list(bq_field("test1", "string"),bq_field("test2", "string")) , source_format = "CSV",create_disposition = "CREATE_NEVER", write_disposition = "WRITE_APPEND")
注意:我第一次尝试使用fields = NULL
运行相同的命令,但它失败了。
以上是关于R到BigQuery数据上传错误的主要内容,如果未能解决你的问题,请参考以下文章
由于 InvalidSchema 错误,将 Pandas 上传到 BigQuery 失败