我的工作因错误而失败
行:14222274 / 字段:1,遇到错误字符 (ASCII 0)。文件的其余部分未处理。
数据已被压缩,并且我已验证文件中不存在 ASCII 0 字符。文件中只有 14222273 行,因此错误消息中打印的行号是文件末尾之后的一行。我有来自同一数据集的其他块,这些块已成功上传,因此我怀疑这要么是 BQ bug,要么错误消息并不表明根本问题。任何解决此问题的帮助将不胜感激。谢谢。
>>> data = open("data.csv").read()
>>> chr(0) in data
False
>>> data[-1]
'\n'
Run Code Online (Sandbox Code Playgroud)
小智 5
我遇到了类似的问题,尝试在 BigQuery 中加载压缩文件(将其保存在 Google Cloud Storage 中)。这些是日志:
文件:0 /偏移量:4563403089 /行:328480 /字段:21:遇到错误字符(ASCII 0):字段开头为:(错误代码:无效) 文件:0 /偏移量:4563403089 /行:328485 /字段:21:遇到错误字符(ASCII 0):字段开头为:(错误代码:无效) 文件:0 /偏移量:4563403089 /行:328490 /字段:21:遇到错误字符(ASCII 0):字段开头为:(错误代码:无效) 文件:0 /偏移量:4563403089 /行:328511 /字段:21:遇到错误字符(ASCII 0):字段开头为:(错误代码:无效) 文件:0 /偏移量:4563403089 /行:328517 /字段:21:遇到错误字符(ASCII 0):字段开头为:(错误代码:无效)
为了解决这个问题,我所做的就是从压缩文件中删除 ASCII 0 字符。为此,我从安装了 sdk 的 Compute Engine 实例执行了以下命令:
gsutil cp gs://bucket_987234/compress_file.gz - | 枪拉链 | tr -d '\000' | gsutil cp - gs://bucket_987234/uncompress_and_clean_file
通过使用管道,我避免了将所有存储都放在硬盘上(1G 压缩 + 52G 解压缩)。第一个程序从存储中获取压缩文件,第二个程序对其进行解压缩,第三个程序删除 ASCII 0 字符,第四个程序将结果上传到存储。
当我再次上传到存储时,我不会压缩结果,因为 BigQuery 加载未压缩文件的速度更快。之后,我可以毫无问题地在 BigQuery 上加载数据。
归档时间: |
|
查看次数: |
14545 次 |
最近记录: |