行大于最大允许大小

Row larger than the maximum allowed size

我已经多次成功地导入了许多 gzip 压缩的 JSON 文件。对于两个文件 BQ import choked。两个文件报告相同的错误:

File: 0 / Offset:0 / Line:1 / Column:20971521, Row larger than the maximum allowed size

现在我已经阅读了 20MB 的行限制,我知道上面的数字是 20MB +1,但真正让我烦恼的是这个意思完全不对。我的 GZ 有数百万个 JSON(每行一个)。我写了一个脚本来测量失败的GZ文件中最长的行(longest JSON),发现它是103571字节。为什么 BQ 导入会阻塞?

我检查了最长的JSON,看起来完全正常。我应该如何解释错误?我该如何解决?

为什么 BQ 认为导入是在第 1 行,第 20971521 列,而文件中有数百万行?

你所有的调查都是正确的,但你必须检查你的文件,因为新行没有被识别,并且 BQ 将所有导入作为一个大行。

这就是为什么它报告第 20971521 列问题的原因。

您应该尝试从文件中导入样本。

这里的一些答案给了我一个想法,所以我继续尝试。似乎出于某种奇怪的原因 BQ 不喜欢行尾,所以我写了一个快速脚本来重写原始输入文件以使用行尾。自动导入有效!

这太奇怪了,因为我已经导入了许多 GB 的纯行尾数据。

我很高兴它起作用了,但我永远猜不出为什么。我希望这对其他人有帮助。