我是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(使用前将#替换为@)