Google-BigQuery - CSV 文件的架构解析

Posted

技术标签:

【中文标题】Google-BigQuery - CSV 文件的架构解析【英文标题】:Google-BigQuery - schema parsing of CSV file 【发布时间】:2014-02-13 19:57:30 【问题描述】:

我们正在使用 Java API 将 CSV 文件加载到 Google Big Query。有没有办法在加载时检测列并自动选择适当的架构类型?

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

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

然后对每一列进行查询-

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

还有什么方法可以解决这个问题吗?

【问题讨论】:

【参考方案1】:

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

    在加载数据时明确提供架构。 使用字符串类型加载所有数据,并在查询时进行转换/转换。

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

【讨论】:

只是提醒看到此回复的新人。自从发布此响应以来,架构自动检测已添加到 BigQuery。【参考方案2】:

作为记录,现在支持模式自动检测:https://cloud.google.com/bigquery/federated-data-sources#auto-detect

【讨论】:

以上是关于Google-BigQuery - CSV 文件的架构解析的主要内容,如果未能解决你的问题,请参考以下文章

如何优化 google-bigquery 以从大数据表中查找最常见的类别?

google-bigquery 如何使用 https 获取数据集列表?

如何同步调用 google-bigquery 删除和插入 API?

google-bigquery 在查询结果中将日期格式设置为 mm/dd/yyyy

如何在没有授权令牌的情况下从 python 脚本查询 google-bigquery 中的私有表?

jaro_winkle_distance 的 google-bigquery UDF