csv - Google-BigQuery - CSV 文件的模式解析

标签 csv google-bigquery

我们使用 Java API 将 CSV 文件加载到 Google Big Query。有没有一种方法可以检测加载的列并自动选择适当的模式类型?

例如,如果特定列只有 float ,则 BigQuery 将该列分配为 float ,如果不是数字,则它将列分配为字符串。有没有办法做到这一点?

迂回的方法是在加载 CSV 时默认将每一列分配为字符串。

然后对每一列进行查询-

SELECT count(列名)- count(float(列名)) FROM dataset.table (假设我只对隔离具有“浮点值”的列感兴趣,我可以将其用于我的应用程序中的数学函数)

还有其他方法可以解决这个问题吗?

最佳答案

目前,BigQuery 不支持架构推断,因此正如您所建议的,您的选择是:

  1. 加载数据时明确提供模式。
  2. 使用字符串类型加载所有数据,并在查询时转换/转换。

请注意,您可以使用 allowLargeResults 功能来清理和重写您导入的数据(但请注意,您需要为查询付费,这会增加您的数据摄取成本)。

关于csv - Google-BigQuery - CSV 文件的模式解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21764265/

相关文章:

python - pandas.read_csv() 可以在同一列中应用不同的日期格式!这是一个已知的错误吗?如何解决?

Python:读取和写入 CSV 文件

python - 使用 Pandas 读取大文本文件

python - 使用 cqlengine 在 cassandra 中插入和更新大量行的最快和最有效的方法

google-bigquery - 我如何知道 Bigquery 查询使用的槽数?

google-apps-script - App Script BigQuery 标准 SQL 插入或更新语句

python - 将标题行写入 csv python

google-bigquery - 如何捕获 BigQueryIO.Write 抛出的任何异常并挽救输出失败的数据?

google-bigquery - 所有 bq 作业的摘要

python - 从 python 上传到 BigQuery 时,某些行出现 ASCII 0 错误