[英]Big Query job fails with "Bad character (ASCII 0) encountered."
我有一份因错误而失败的工作
行:14222274 / 字段:1,遇到错误字符 (ASCII 0)。 其余文件未处理。
数据已压缩,我已验证文件中不存在 ASCII 0 字符。 文件中只有 14222273 行,因此错误消息中打印的行号是文件末尾后的一行。 我有来自同一数据集的其他块已成功上传,所以我怀疑这是 BQ 错误,或者错误消息并未指示潜在问题。 解决此问题的任何帮助将不胜感激。 谢谢。
>>> data = open("data.csv").read()
>>> chr(0) in data
False
>>> data[-1]
'\n'
我遇到了类似的问题,试图在BigQuery中加载一个压缩文件(将其保存在Google云端存储中)。 这些是日志:
File: 0 / Offset:4563403089 / Line:328480 / Field:21: Bad character (ASCII 0) encountered: field starts with: (error code: invalid) File: 0 / Offset:4563403089 / Line:328485 / Field:21: Bad character (ASCII 0) encountered: field starts with: (error code: invalid) File: 0 / Offset:4563403089 / Line:328490 / Field:21: Bad character (ASCII 0) encountered: field starts with: (error code: invalid) File: 0 / Offset:4563403089 / Line:328511 / Field:21: Bad character (ASCII 0) encountered: field starts with: (error code: invalid) File: 0 / Offset:4563403089 / Line:328517 / Field:21: Bad character (ASCII 0) encountered: field starts with: (error code: invalid)
为了解决问题,我所做的是从压缩文件中删除ASCII 0字符。 为此,我从安装了sdk的Compute Engine实例执行了以下commnad:
gsutil cp gs://bucket_987234/compress_file.gz - | gunzip | tr -d '\000' | gsutil cp - gs://bucket_987234/uncompress_and_clean_file
通过使用管道,我避免了硬盘上的所有存储(1G压缩+ 52G解压缩)。 第一个程序从Storage获取压缩文件,第二个程序解压缩它,thrid删除ASCII 0字符,第四个程序将结果updalo到Storage。
我再次上传到存储时不会压缩结果,因为BigQuery可以更快地加载未压缩的文件。 之后我可以毫无问题地加载BigQuery数据。
当你压缩你使用的实用程序?
当我以ZIP格式(在Windows中)压缩我的csv文件时,我看到了这个问题。 Google BigQuery似乎只接受gzip格式。
确保使用gzip压缩CSV。 如果你在Windows 7-zip是一个很棒的实用工具,它允许你压缩gzip。
在Unix中,gzip是标准的。
遇到错误字符(ASCII 0)。 其余文件未处理。
清楚地说明你有一个无法解码的UTF-16字符。 BigQuery服务仅支持UTF-8和latin1文本编码。 因此,该文件应该是UTF-8编码的。
文件中只有14222273行,因此错误消息中打印的行号是超过文件末尾的一行。
可能你在文件的末尾有一个UTF-16编码的制表符,无法解码。
解决方案 :在gzip
命令中使用-a
或--ascii
标志。 它将被bigquery
解码为ok。
我也有同样的问题。 我在尝试上传数据文件时收到此错误消息:无法创建表:读取数据时出错,错误消息:解析从位置开始的行时检测到错误:0。错误:遇到错误字符 (ASCII 0)。
我使用的是 mac book,此步骤有帮助:打开要上传到 bigquery 的数据文件。 转到文件——导出到——csv——单击“下一步”。 现在,尝试将其上传到 bigQuery。 成功!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.