【问题标题】:Loading csv data into Big Query via API通过 API 将 csv 数据加载到 Big Query
【发布时间】:2018-04-25 15:26:36
【问题描述】:

我正在尝试将 CSV 文件上传到大型查询数据库,但是我不断收到以下消息。

RuntimeError: [{'reason': 'invalid', 'location': 'kid=70943:mkey=customer_encrypt_cns/file-00000000', 'message': 'Error while reading data, error message: CSV table encountered too many errors, giving up. Rows: 1; errors: 1. Please look into the error stream for more details.'}, {'reason': 'invalid', 'location': 'kid=70943:mkey=customer_encrypt_cns/file-00000000', 'message': 'Error while reading data, error message: CSV table references column position 1, but line starting at position:0 contains only 1 columns.'}]

csv 中的数据与架构匹配,作为测试,我只上传 5 行 8 列,例如

2018-02-02  x   0.1 2.4 0   0   0.88    0.4
2018-02-03  y   0.1 3   0   0   0.87    0.21
2018-02-04  z   0.1 2.8 0   0   0.86    0.21
2018-02-05  a   0.1 2.4 0   0   0.91    0.21
2018-02-06  b   0.1 1.9 0   0   1.00    0.4

为什么说我只有一栏?

【问题讨论】:

  • 这看起来像一个 tab 分隔的文件,而不是逗号分隔的文件。您是否指定了适当的分隔符?
  • CSV 是一个逗号分隔的文件。但在您的数据样本中没有逗号。您确定要上传逗号分隔的文件吗?

标签: python database google-bigquery


【解决方案1】:

它说您有 1 列,因为您的数据没有被格式化/解析为正确的 CSV 文件,因为没有明确的字段分隔符。我已将数据正确格式化为制表符分隔,并且能够将其加载到 BigQuery 中,从而获得 5 行 8 列。

这是使用的数据:

2018-02-06  x   0.1 2.4 0   0   0.88    0.4
2018-02-03  y   0.1 3   0   0   0.87    0.21
2018-02-04  z   0.1 2.8 0   0   0.86    0.21
2018-02-05  a   0.1 2.4 0   0   0.91    0.21
2018-02-06  b   0.1 1.9 0   0   1.00    0.4

【讨论】:

    【解决方案2】:

    你能提供请求正文吗?

    BigQuery 似乎无法使用提供的选项解析文件。 关于您的文件,您应该指定 "fieldDelimiter":"\t" 选项。 您可以查看 BigQuery API documentation 了解详情。

    BigQuery 还支持 schema auto-detection 用于逗号 (,)、竖线 (|) 和制表符 (\t) 分隔的字段。

    【讨论】:

      猜你喜欢
      • 2020-01-25
      • 2019-03-01
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多