如何在 BigQuery 架构中设置 FLOAT 的精度
Posted
技术标签:
【中文标题】如何在 BigQuery 架构中设置 FLOAT 的精度【英文标题】:How to set the precision of a FLOAT in BigQuery schema 【发布时间】:2021-05-04 09:45:17 【问题描述】:在 BigQuery 中,如果我想在查询中舍入 FLOAT
类型字段,我会使用 ROUND()
函数。
是否可以在架构中或通过某些选项/参数设置精度?
例子:
一个数据文件包含一些 FLOAT
类型的字段,这些字段在小数点 (18) 后包含太多数字,我想在上传过程中通过在架构中指定一些参数或选项来对其进行四舍五入。
[
"mode": "NULLABLE", "name": "BRAND", "type": "STRING", "description": null,
"mode": "NULLABLE", "name": "PRICE", "type": "FLOAT", "description": null [, "<precision>":"2"]
]
【问题讨论】:
不,不幸的是,这在架构定义级别上是不可能的,您可能会看到的是定义一个新的 udf,它可以在上传新文件时触发 【参考方案1】:将数据上传到 BigQuery 时无法执行数据转换。
一般你可以尝试一些其他的方法:
从上传的表格创建一个新表格。为此,您可以创建一个查询并在其中执行所需的转换。 eg: CREATE TABLE project_name.dataset_name.new_table_name as SELECT Brand, round(price,5) as Price from project_name.dataset_name.uploaded_table_name;
根据查询结果创建表。 https://cloud.google.com/bigquery/docs/tables#creating_a_table_from_a_query_result
【讨论】:
以上是关于如何在 BigQuery 架构中设置 FLOAT 的精度的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Google BigQuery 中设置用户的查询配额
google 如何在 Bigquery/Google-Analytics 中设置 fullVisitorId/Client ID?