使用命令行将 csv 文件加载到大查询中时面临问题

Posted

技术标签:

【中文标题】使用命令行将 csv 文件加载到大查询中时面临问题【英文标题】:facing issue while loading csv file into big query using command line 【发布时间】:2019-08-28 18:01:13 【问题描述】:

我正在尝试使用 bq load 命令将数据加载到大查询中,但在加载数据时遇到了一些问题。

我尝试使用波纹管 bq 加载选项

--allow_quoted_newlines 
--allow_jagged_rows

出现以下错误

cloudshell:~ (cec-gcp-srm-prod)$ bq load  --source_format CSV  --allow_quoted_newlines --allow_jagged_rows cec_tabular_data.AIU_FaStudentPell gs://cec-srm-prod/sqoop_jars/tables/AIU_FaStudentPell/part-*
Waiting on bqjob_r7be43351d9d1ee46_0000016cd9590247_1 ... (9s) Current status: DONE   
BigQuery error in load operation: Error processing job 'cec-gcp-srm-prod:bqjob_r7be43351d9d1ee46_0000016cd9590247_1': Error while reading data, error message: CSV table encountered too many errors,
giving up. Rows: 53097; errors: 1. Please look into the errors[] collection for more details.
Failure details:
- gs://cec-srm-prod/sqoop_jars/tables/AIU_FaStudentPell/part-m-00000:
Error while reading data, error message: Too many values in row
starting at position: 25633742.

【问题讨论】:

【参考方案1】:

从错误消息的外观来看,作业被设计为一旦遇到 1 个错误就会失败。

如果数据准确性不是问题,请增加摄取期间允许的错误数并删除不良记录。

根本原因可能是您的分隔符出现在 csv 数据中,导致创建了额外的列。如果您需要 100% 的数据,请尝试将分隔符从 , 更改为 |或一些未使用的符号,因为这可能会解决问题。

【讨论】:

谢谢马蒂!问题已解决,我在使用 sqoop 导入数据时尝试使用 avro 文件格式。我将数据与架构映射,然后在大查询中加载数据。

以上是关于使用命令行将 csv 文件加载到大查询中时面临问题的主要内容,如果未能解决你的问题,请参考以下文章

从命令行将数据从csv文件加载到oracle表[关闭]

将 csv 文件从云存储加载到大查询

使用云功能将数据加载到大查询表中,它是附加到表中的,我需要它来替换

使用 bq 命令行将文件从 GBQ 提取到没有 csv 标头的 GCS

通过命令行将csv导入mysql

使用 soffice 命令行将 xls 转换为分号分隔的 csv