Bigquery 加载列中包含“null”文本的 CSV 文件

Posted

技术标签:

【中文标题】Bigquery 加载列中包含“null”文本的 CSV 文件【英文标题】:Bigquery Loading CSV File with 'null' text in the columns 【发布时间】:2014-03-09 19:25:34 【问题描述】:

我尝试使用 Google Cloud 客户端库将 CSV 文件上传到 Bigquery。其中一个 CSV 文件的列中有“空”文本,而上传文件时 Bigquery 返回一条错误消息,提示“列太少”。

示例文件数据:

第 1 列、第 2 列、第 3 列、第 4 列

1,空,3,空,

2,空,空,空

我已验证发送的配置 json,它有 4 列的四个表字段。错误消息显示“预期 4 列,但得到 2 列”。

是否需要任何特定配置来处理这种情况?

【问题讨论】:

架构是什么(每列的类型)? 【参考方案1】:

如果列是数字,那么您指定一个带有空值的 null。

例如,这是可行的。

$ echo 2,,, > rows.csv
$ bq load lotsOdata.lfdhjv2 rows.csv c1:integer,c2:integer,c3:integer,c4:float
Waiting on bqjob_r4f71e9aebbf9cb57_00000144acfa7622_1 ... (23s) Current status: DONE   

请注意,在上面的示例中,1,null,3,null, 行中有一个额外的值,因为末尾有一个额外的逗号。另请注意,如果您的 .csv 文件有标题行,则应使用 --skip_leading_rows=1 参数,以免标题被解释为数据。

【讨论】:

以上是关于Bigquery 加载列中包含“null”文本的 CSV 文件的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 会将记录移动到正确的分区中吗?

复合唯一键约束,其中一列中包含多个空值

在 BigQuery 的列名中包含特殊字符?

减去刚刚在 bigquery 中创建的列

更改表中包含或不包含数据的列长度

Bigquery 根据另一个表在列中查找文本