当我的程序尝试通过作业上传到BigQuery上传.csv
文件时报告错误:
Job failed while writing to Bigquery. invalid: Too many errors encountered. Limit is: 0. at
Error: [REASON] invalid [MESSAGE] Data between close double quote (") and field separator: field starts with: <N> [LOCATION] File: 0 / Line:21470 / Field:2
Error: [REASON] invalid [MESSAGE] Too many errors encountered. Limit is: 0. [LOCATION]
我追溯到我的文件并确实找到了指定的行:
3D0F92F8-C892-4E6B-9930-6FA254809E58~"N" STYLE TOWING~1~0~5.7.1512.441~10.20.10.25:62342~MSSqlServer: N_STYLE on localhost~3~2015-12-17 01:56:41.720~1~<?xml version="1
分隔符设置为〜,然后为什么双引号或者&lt; N&gt;有问题吗?
答案 0 :(得分:1)
csv的规范说如果字段中有引号,则应引用整个字段。与在a,b,"c,d"
中一样,由于引用了第三个逗号,因此只有三个字段。当结束引号之后但下一个分隔符之前有数据时,csv解析器会感到困惑,如a,b,"c,d"e
。
您可以通过指定自定义引号字符来解决此问题,因为听起来您根本不需要引号字符,因此您可以将其设置为您永远不会看到的内容,例如\0
或|
。您已经设置了configuration.load.delimiter
,只需设置configuration.load.quote
。