当我尝试使用时间戳字段的bq load命令将值加载到表中时遇到错误,但是当我在GUI上直接插入时,相同的值似乎可以正常工作。
这似乎可以插入。
Insert into testdataset.LOG (id, created_time) values (123,"2014-09-27T12:30:00.45Z");
此操作失败,并显示错误bq load --source_format=CSV --skip_leading_rows=1 --autodetect --noreplace myproject:testdataset.LOG ./test.csv
CSV的内容:
"ID","CREATED_TIME"
1,"2014-09-27T12:30:00.45Z"
2,"2014-09-27T12:30:00.45Z"
错误如下:
Field CREATED_TIME has changed type from TIMESTAMP to STRING
如果我将架构添加到命令中,如下所示:
bq load --source_format=CSV --skip_leading_rows=1 --autodetect --noreplace myproject:testdataset.LOG ./test.csv ID:INTEGER,CREATED_TIME:TIMESTAMP
我收到错误消息:Field CREATED_TIME has changed mode from REQUIRED to NULLABLE
更新:
**我遇到的是字段的顺序和csv中的引号...我还必须将字段created_time从REQUIRED更改为NULLABLE。一旦完成,我的新CSV如下所示:< / p>
CREATE_TIME,ID
2014-09-27T12:30:00.45Z,123
2014-09-27T12:30:00.45Z,123
**
答案 0 :(得分:2)
好像您的CSV格式有误。尝试完全删除引号:
ID,CREATED_TIME
1,2014-09-27T12:30:00.45Z
2,2014-09-27T12:30:00.45Z
答案 1 :(得分:1)
如果您的模式存在,则无需请求模式自动检测。如果可以的话,让BigQuery将目标字段转换为目标字段格式。为此,只需删除--autodetect
选项
bq load --source_format=CSV --skip_leading_rows=1 --noreplace myproject:testdataset.LOG ./test.csv