通过API将csv数据加载到Big Query中

时间:2018-04-25 15:26:37

标签: python database google-bigquery

我尝试将CS​​V文件上传到大型查询数据库,但我不断收到以下消息。

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

为什么说我只有1列?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您能提供请求正文吗?

看起来BigQuery无法使用提供的选项解析文件。 关于你的文件,你应该指定" fieldDelimiter":" \ t"选项。 您可以查看BigQuery API documentation以获取详细信息。

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