我创建了一个永久的大查询表,它从共享相同前缀名(filename*.csv)和相同模式的云存储Bucket中读取一些csv文件。无论如何,有一些CSV使用类似下面的消息进行失败的BigQuery查询:"Error while reading table: xxxx.xxxx.xxx,error message: CSV table reference column position 5,但在position:10开始的行只包含2列。从桶中一个接一个地移动所有csvs,这是我设计的负责对象。此csv文件没有10行...我发现了这个票据BigQuery error when loading csv file from Google Cloud Storage,所以我认为问题是在结尾有一个空行。但我桶中的其他csvs也是如此,所以这不可能是原因。另一方面,此csv是唯一一个内容类型为text/csv;charset=utf-8的csv,所有其他csv都是text/csv、utf此外,下载此csv到我的本地视窗机器,并再次上传到云存储,内容类型自动转换为application/vnd.ms-excel.然后,即使缺少行,Big Query也可以基于filename*.csvs查询永久表。有没有可能BigQuery在查询使用UTF-8编码的csvs时遇到了问题,或者只是巧合?
发布于 2019-06-17 23:33:58
使用Google Cloud Dataprep加载您的csv文件。加载文件后,分析数据并在需要时清除它。清理完所有行之后,就可以在BQ中接收该数据了。
Dataprep是基于GUI的ETL工具,它在内部运行数据流作业。
如果需要更多的澄清,一定要让我知道。
发布于 2019-06-26 08:36:48
为了说明这个问题,CSV文件的编码是gzip,这就是BigQuery不会将其解释为CSV文件的原因。
根据文档BigQuery expects CSV data to be UTF-8 encoded
"encoding": "UTF-8"
此外,由于此问题与GCS中文件的元数据相关,因此您可以直接从控制台执行edit the metadata。
https://stackoverflow.com/questions/56619888
复制相似问题