我尝试将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
为什么说我只有1列?
答案 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)分隔的字段。