【问题标题】:Error Loading Large CSV into Google BigQuery将大型 CSV 加载到 Google BigQuery 时出错
【发布时间】:2017-11-30 18:31:09
【问题描述】:

将大型 CSV 加载到 bigquery 时出错。我在网上阅读的所有地方都看到压缩文件有 5gb 的大小限制,但 CSV 没有限制。

加载操作中的 BigQuery 错误:处理作业“bqjob_r3016bbfad3037f_0000015cea1a1eff_1”时出错:输入的 CSV 文件不可拆分且 至少有一个文件大于最大允许大小。大小为:24686861596。允许的最大大小为:4294967296。

【问题讨论】:

  • 所以 24686861596 是 25 GB。 This 评论声称 gsutil 可以处理这样的大小。您可以尝试先将文件上传到 Google Cloud Storage,然后将其从 Google Cloud Storage 移动到 Google BigQuery。您可以从 CS 直接转入 BQ。如果你converted your data into gzip format,你可能会做得更快。
  • 这是从谷歌云存储加载的
  • 所以这不是从本地迁移到远程,而是从远程(云存储)迁移到远程(大查询)是正确的吗?

标签: csv cloud google-bigquery


【解决方案1】:

BigQuery 文档在此处列出了导入作业的各种限制:https://cloud.google.com/bigquery/quota-policy#load_jobs 它特别指出,压缩的 CSV 文件的限制是 4 GB。

有关“不可拆分”CSV 文件的错误消息可能有两种情况:

  1. CSV 文件已压缩
  2. 其中一个字段中存在引号字符不匹配,这使得该字段中看起来像 非常 长的字符串,也使文件不可拆分(这可能是您的情况)。

【讨论】:

  • 此 CSV 未压缩。我正在使用相同的命令加载其他 csvs 40+ 演出,没有问题。
  • 您运行此作业的项目 ID 是什么?
  • 我在项目 mlproject-1315 下找不到 ID 为 bqjob_r3016bbfad3037f_0000015cea1a1eff_1 的工作
  • 更新了答案,提到了引用不匹配的未压缩 CSV
  • 那么它必须是 2 号。谢谢
【解决方案2】:

试试这个:

  • 关闭引用
  • 将分隔字符设置为不出现的字符。

bq help load:

--quote: Quote character to use to enclose records. Default is ". To indicate no quote character at all, use an empty string.
-F,--field_delimiter: The character that indicates the boundary between columns in the input file. "\t" and "tab" are accepted names for tab.

这会将每个 CSV 行导入一个单列表。之后在 BigQuery 中拆分(使用 REGEXP_EXTRACT()SPLIT() 或 JavaScript UDF)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多