【问题标题】:Error code: Inavlid in Loading Data on BigQuery错误代码:在 BigQuery 上加载数据时无效
【发布时间】:2016-11-09 13:00:24
【问题描述】:

我有一个大的 CSV 文件(近 10,000 行),我正在尝试将它上传到 BigQuery,但它给了我这个错误:

ile-00000000:CSV 表引用列位置 8,但从位置:622 开始的行仅包含 8 列。 (错误代码:无效)

谁能告诉我一个可能的理由吗?我已经仔细检查了我的架构,它看起来没问题。

谢谢

【问题讨论】:

  • 尝试一个示例,看看是否适用于 5 行。如果这有效并且整个数据集无效,那么在某处你有一条折线。让我知道 5 行的效果如何?
  • 我也有同样的问题,有什么解决办法吗?因为 BigQuery 在某些情况下会随机播放行(我猜想),所以它可以从 GSC 读取 LIMIT 10 行。但在大多数情况下,它会给出这个错误。我的 CSV 文件有双引号 整个 字段,但这应该不是问题。
  • 它看起来也不像是一条折线。我检查了控制字符。
  • 猫 myfile.csv | grep '[[:cntrl:]]' - 不返回任何内容
  • 鉴于您涉及双引号,我敢打赌转义双引号出现问题,导致包含双引号的字符串导致行数据拆分,或类似的东西。您是否对文件进行了任何检查以确保其正常架构?

标签: csv google-bigquery error-code


【解决方案1】:

尝试将 csv 中的大型数据集导入 BigQuery 表时,我遇到了同样的问题。

问题原来是写入 csv 的数据中的一些 ascii 控制字符(\b、\t、\r、\n)。当 csv 被发送到 BigQuery 时,这些字符会导致 BiqQuery csv 解析器误解该行并中断,因为数据与标题中的列数不匹配。

用空格替换这些字符(以尽可能保留格式)使我可以导入数据而不会出现其他问题。

【讨论】:

  • 你在加载jobconfig之前更换了吗?有没有类似的选项
【解决方案2】:

错误消息表明加载作业失败,因为至少有一行的列数少于自动检测到的架构规定的列数。

添加

allow_jagged_rows=true

在选项中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多