【问题标题】:Error while loading AVRO files to BigQuery将 AVRO 文件加载到 BigQuery 时出错
【发布时间】:2017-11-10 20:16:05
【问题描述】:

我已使用 bq CLI 实用程序成功地将大量 AVRO 文件(相同模式类型的文件加载到同一张表中)存储在 Google 存储中。

但是,对于某些 AVRO 文件,我在加载到 bigquery 时遇到了非常神秘的错误,错误显示:

Apache Avro 库无法读取数据并出现以下错误:EOF 到达(错误代码:无效)

通过 avro-tools 验证 AVRO 文件没有损坏,报告输出:

java -jar avro-tools-1.8.1.jar 修复 -o 报告 2017-05-15-07-15-01_48a99.avro 恢复文件:2017-05-15-07-15-01_48a99.avro 文件摘要: 块数:51 损坏块数:0 记录数:58598 损坏记录数:0

我尝试使用其中一个失败的文件创建一个全新的表,以防它是由于架构不匹配造成的,但这并没有帮助,因为错误完全相同。

需要帮助找出可能导致此错误的原因吗?

【问题讨论】:

  • 您能否submit a bug to the issue tracker 提供一个重现问题的示例文件,假设它不包含任何敏感数据?这将有助于 BigQuery 团队调试正在发生的事情,因为这听起来像是一个错误。

标签: google-bigquery google-cloud-storage avro


【解决方案1】:

如果没有更多信息,无法查明问题,但我遇到了此错误消息并提交了一张票 here

单个加载作业中的多个文件缺少导致错误的列。

来自ticket的解释。

BigQuery 使用目录中按字母顺序排列的最后一个文件作为 avro 架构来读取其他 Avro 文件。我怀疑问题在于最后一个文件和“有问题的”文件之间的架构不兼容。您知道所有文件是否具有完全相同的架构或不同?您可以尝试帮助验证这一点的一件事是将目录中按字母顺序排列的最后一个文件和“有问题的”文件复制到不同的文件夹,并尝试在一个 BigQuery 加载作业中加载这两个文件,然后查看错误是否重现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 2019-02-23
    相关资源
    最近更新 更多