Bq load 分析从位置1830577开始的行时检测到错误。错误:关闭双引号(";)和字段分隔符之间的数据
我正在尝试将一个表从Teradata加载到BQ。我的管道是首先将表数据导出到gcs位置,然后使用bqload,将数据从gs://加载到bq表 我的行李看起来像这样Bq load 分析从位置1830577开始的行时检测到错误。错误:关闭双引号(";)和字段分隔符之间的数据,bq-load,Bq Load,我正在尝试将一个表从Teradata加载到BQ。我的管道是首先将表数据导出到gcs位置,然后使用bqload,将数据从gs://加载到bq表 我的行李看起来像这样 bq load --autodetect --source_format=CSV --project_id=xx-xx-xx --field_delimiter='^' \ BQTable \ gs:// \ Name:string,Age:INT64,Place:NUMERIC ... 但是当我尝试使用bq load将数据加载到b
bq load --autodetect --source_format=CSV --project_id=xx-xx-xx --field_delimiter='^' \
BQTable \
gs:// \
Name:string,Age:INT64,Place:NUMERIC ...
但是当我尝试使用bq load将数据加载到bq表时,我得到了以下错误
Error detected while parsing row starting at position: 1830577. Error: Data between
close double quote (") and field separator.
我尝试在bqload命令中使用两个选项,比如--quote=“”,当我使用它时,它给了我一个不同的错误,如下所示
Could not parse 'MP' as NUMERIC for field XXXXXX (position 18) starting at
location 1030399 with message 'Invalid NUMERIC value: MP'
很长一段时间以来,我一直在考虑其他选择,但没有任何结果。有人能给我们一些启发吗?不确定这个问题是否仍然有效,但它可能会对将来的人有所帮助 看起来有些数据在双引号中被错误地关闭(例如,
123,“some”数据,456
)。
这可能是由转义特殊字符引起的-请参阅此处有关双引号数据的更多信息:
在这里:
请注意,默认情况下,NULL值也会用“”进行转义
这可能会导致一些额外的问题,例如:
e、 g.123,“空”,引号中的一些文本值“,456
然后“NULL”将被解释为字符串值,“sometext…”将抛出
Error: Data between close double quote (") and field separator.
您应该从.csv文件中删除任何“NULL
,使其看起来像这样:
123,“引号中的一些文本值”,456