读取数据时出错,错误消息:CSV 表引用列位置 15,但从位置:0 开始的行仅包含 1 列

2024-01-25

我是bigquery的新手,这里我尝试加载我手动创建的GCP BigQuery表中的数据,我有一个包含bq加载命令的bash文件 -

bq load --source_format=CSV --field_delimiter=$(printf '\u0001') dataset_name.table_name gs://bucket-name/sample_file.csv

我的 CSV 文件包含多个具有 16 列的行 - 示例行是

100563^3b9888^Buckname^https://www.settttt.ff/setlllll/buckkkkk-73d58581.html^Buckcherry^null^null^2019-12-14^23d74444^Reverb^Reading^Pennsylvania^United States^US^40.3356483^-75.9268747

表架构 -

当我从云 shell 执行 bash 脚本文件时,出现以下错误 -

Waiting on bqjob_r10e3855fc60c6e88_0000016f42380943_1 ... (0s) Current status: DONE   
BigQuery error in load operation: Error processing job 'project-name- 
staging:bqjob_r10e3855fc60c6e88_0000ug00004521': Error while reading data, error message: CSV 
table
encountered too many errors, giving up. Rows: 1; errors: 1. Please look into the errors[] collection 
for more details.
Failure details:
- gs://bucket-name/sample_file.csv: Error while
reading data, error message: CSV table references column position
15, but line starting at position:0 contains only 1 columns.

解决方案是什么,提前致谢


您试图根据您提供的架构将错误的值插入到表中

根据表架构和您的数据示例,我运行以下命令:

./bq load --source_format=CSV  --field_delimiter=$(printf '^') mydataset.testLoad  /Users/tamirklein/data2.csv

第一个错误

失败详情: - 读取数据时出错,错误消息:无法解析“39b888” 作为字段 Field2(位置 1)的 int,从位置 0 开始

此时,我手动从 39b888 中删除了 b,现在我得到了这个

第二个错误

失败详情: - 读取数据时出错,错误消息:无法解析 “14/12/2019”作为字段 Field8(位置 7)的日期,起始于 位置 0

此时,我将 14/12/2019 更改为 2019-12-14,这是 BQ 日期格式,现在一切正常

上传完成。 正在等待 bqjob_r9cb3e4ef5ad596e_0000016f42abd4f6_1 ...(0 秒)当前状态:完成

您需要在上传之前清理数据,或者使用包含更多行的数据样本--max_bad_records标志(有些行可以,有些则不基于您的数据质量)

注意:不幸的是,在上传过程中无法控制日期格式,请参阅此answer https://stackoverflow.com/a/44114830/1031958作为参考

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

读取数据时出错,错误消息:CSV 表引用列位置 15,但从位置:0 开始的行仅包含 1 列 的相关文章

随机推荐