我正在运行定期上传作业,将csv上传到BigQuery。这项工作每小时运行一次。根据最近的失败日志,它说:
Error: [REASON] invalid [MESSAGE] Invalid argument: service.geotab.com [LOCATION] File: 0 / Offset:268436098 / Line:218637 / Field:2
Error: [REASON] invalid [MESSAGE] Too many errors encountered. Limit is: 0. [LOCATION]
我去了第218638行(原来的csv有一个标题,所以我假设218638应该是实际失败的行,让我知道我是不是错了)但似乎没事。我在BigQuery中检查了表,它也有那条线,这意味着我之前实际上已经成功上传了这一行。
那为什么最近会导致失败?
project id: red-road-574
Job ID: Job_Upload-7EDCB180-2A2E-492B-9143-BEFFB36E5BB5
答案 0 :(得分:0)
这表示文件中的数据存在问题,但与模式不匹配。
错误消息显示它发生在File: 0 / Offset:268436098 / Line:218637 / Field:2
。这意味着第一个文件(看起来你只有一个),然后文件的块从文件开头的268436098字节开始,然后是该文件偏移的第218637行。
偏移部分的原因是bigquery在多个worker中并行处理大文件。每个文件工作者从文件开头的偏移量开始。我们包含的偏移量是工人开始的偏移量。
在错误消息的其余部分,看起来字符串service.geotab.com
出现在第二个字段中,但第二个字段是数字,service.geotab.com
不是有效数字。也许有一个流浪换行?
您可以通过执行以下操作查看错误周围的行:
cat <yourfile> | tail -c +268436098 | tail -n +218636 | head -3
这将打印出三行......错误之前的那一行(因为我使用-n +218636而不是+218637),有错误的那一行,以及下一行。
请注意,如果这只是文件中存在问题的一行,您可以通过指定maxBadRecords
来解决此问题。