在向BigQuery导入~4 GB行~~ 4千万行时,我收到以下错误消息:
Errors:
File: 0 / Offset:4026531933 / Line:604836 / Field:39, Value cannot be converted to expected type.
我的问题:我如何使用上面错误信息中的偏移/线路信息来确定违规记录的行号?
答案 0 :(得分:3)
对于大型文件,BigQuery将它们分成大块并并行加载它们。这意味着BigQuery不知道在特定部分之前有多少行,因为该文件被字节范围分块。提到的偏移量是从文件开头开始的块,以字节为单位。所以错误应该在4026531933字节后的604836行。
您可以使用以下命令在Unix上隔离带有错误值的行:
tail -c +4026531933 <input file> | head -n $((604836 + 1)) | tail -1
或者使用sed:
tail -c + | sed -n $((+ 1))p