大查询无法查询Cloud Storage存储桶中的某些csv

时间:2019-06-16 14:46:40

标签: google-cloud-platform google-bigquery google-cloud-storage

我创建了一个永久的Big Query表,该表从共享相同前缀名称(filename * .csv)和相同架构的Cloud Storage Bucket中读取某些csv文件。 无论如何,有些csv会使BigQuery查询失败,并显示以下消息:“读取表时出错:xxxx.xxxx.xxx,错误消息:CSV表引用列位置5,但行从位置10开始仅包含2列。 从存储桶中一步一步地移动所有csv,我设计了一个负责此操作的csv。 这个csv档案没有10行... 我找到了这张票证BigQuery error when loading csv file from Google Cloud Storage,所以我认为问题出在最后一行。但是我的存储桶中的其他csvs也可以,所以这不是原因。 另一方面,此csv是唯一具有内容类型 text / csv的csv; charset = utf-8 ,其他所有都是 text / csv application / vnd.ms-excel application / octet-stream 。 此外,将此csv下载到我的本地Windows机器上,然后再次将其上传到Cloud Storage,内容类型会自动转换为 application / vnd.ms-excel 。 然后,即使缺少一行,Big Query仍可以基于filename * .csvs查询永久表。 BigQuery是否有可能在使用UTF-8编码查询csv时出现问题,还是只是巧合?

2 个答案:

答案 0 :(得分:0)

使用Google Cloud Dataprep加载您的csv文件。加载文件后,分析数据并根据需要清理。 清除所有行后,您就可以将该数据存储在BQ中。

Dataprep是基于GUI的ETL工具,它在内部运行数据流作业。

请让我知道是否需要进一步澄清。

答案 1 :(得分:0)

仅为说明问题,CSV文件使用gzip作为编码,这就是BigQuery不能解释为CSV文件的原因。

根据文档BigQuery expects CSV data to be UTF-8 encoded

"encoding": "UTF-8"

此外,由于此问题与GCS中文件的元数据有关,您可以直接从控制台edit the metadata