cha*_*id1 4 csv google-bigquery
我有一个带有标题行的 CSV 数据文件,用于填充 BigQuery 表:
$ cat dummy.csv
Field1,Field2,Field3,Field4
10.5,20.5,30.5,40.5
10.6,20.6,30.6,40.6
10.7,20.7,30.7,40.7
Run Code Online (Sandbox Code Playgroud)
使用 Web UI 时,有一个文本框,我可以在其中指定要跳过的标题行数。但是,如果我使用bq命令行工具将数据上传到 BigQuery ,则无法执行此操作,并且总是出现以下错误:
$ bq load my-project:my-dataset.dummydata dummy.csv Field1:float,Field2:float,Field3:float,Field4:float
Upload complete.
Waiting on bqjob_r7eccfe35f_0000015e3e8c_1 ... (0s) Current status: DONE
BigQuery error in load operation: Error processing job 'my-project:bqjob_r7eccfe35f_0000015e3e8c_1': CSV table encountered too many errors, giving up. Rows: 1;
errors: 1.
Failure details:
- file-00000000: Could not parse 'Field1' as double for field Field1
(position 0) starting at location 0
Run Code Online (Sandbox Code Playgroud)
该BQ命令行工具快速入门文档也没有提到跳过标题任何选项。
一个简单/明显的解决方案是编辑dummy.csv以删除标题行,但如果指向 Google Cloud Storage 上的 CSV 文件而不是本地文件,则这不是一个选项dummy.csv。
这可以通过 Web 界面和Python API 来完成,因此也应该可以使用该bq工具来完成。
检查bq help load发现了一个--skip_leading_rows选项:
--skip_leading_rows : The number of rows at the beginning of the source file to skip.
(an integer)
Run Code Online (Sandbox Code Playgroud)
还发现在这个选项BQ命令行工具文档(它是不一样的快速启动文档,链接到上文)。
--skip_leading_rows=1在bq load命令中添加 a就像一个魅力。
这是成功的命令:
$ bq load --skip_leading_rows=1 my-project:my-dataset.dummydata dummy.csv Field1:float,Field2:float,Field3:float,Field4:float
Upload complete.
Waiting on bqjob_r43eb07bad58_0000015ecea_1 ... (0s) Current status: DONE
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7366 次 |
| 最近记录: |