【发布时间】:2018-07-05 00:13:20
【问题描述】:
我正在使用 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 似乎在自动检测数据格式,并错误地将具有“00487”等值的 NewID 列视为数字,而实际上它是一个字符串。当我将“x”字符附加到 NewID 值时,错误消失并且上传功能完美。使用“bigrquery”包上传数据时,有什么方法可以禁用自动检测?
【问题讨论】:
-
也许在上传之前使用
as.character将NewID列转换为字符类? -
它已经是 R 中的一个字符。否则它不能有前导零。 BigQuery 表中的对应列是 STRING 数据类型。问题在于忽略显式数据类型的自动检测;我不知道如何关闭该功能。
标签: r google-bigquery