我很清楚SO上的好问题是什么样子的,很抱歉我无法共享产生错误的数据,所以是的,这是一个糟糕的问题。然而,我收到了一条极其神秘的错误消息:
'Error while reading data, error message: CSV table references column position 42, but line starting at position:636 contains only 42 columns.'}, 'errors': [{'reason': 'invalid', 'location': 'XXXX', 'message': 'Error while reading data, error message: CSV table references column position 42, but line starting at position:636 contains only 42 columns.'}, {'reason': 'invalid', 'message': 'Error while reading data, error message: CSV processing encountered too many errors, giving up. Rows: 6285; errors: 1; max bad: 0; error percent: 0'}], 'state': 'DONE'}}
错误消息似乎说我的某一行有42列,但表(我已经预定义了不是自动生成的模式(期望有42列……这没有意义。对正在发生的事情有什么见解吗?我看了看第6285排,没有什么不对的。我不知道636位置是什么意思?第6285行甚至没有500个字符。也许这就是问题所在?是不是和坏换行符有关?
"位置";在BigQuery中,CSV导入错误指的是从文件开头开始的字节偏移量。因此;从位置636〃开始的行;是指从文件开头636字节开始的行。
关于错误消息本身:references column position 42, but line starting at position:636 contains only 42 columns
。这意味着模式期望一个列"0";42〃;(零索引?(,但这一行没有足够的列。
如果出现这种情况,您可以考虑启用--allow_jagged_rows
选项,该选项将把行末尾缺少的列视为NULL,而不是错误。