【问题标题】:How to set the precision of a FLOAT in BigQuery schema如何在 BigQuery 架构中设置 FLOAT 的精度
【发布时间】: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,它可以在上传新文件时触发

标签: google-bigquery floating-point


【解决方案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

【讨论】:

    猜你喜欢
    • 2017-02-12
    • 2022-08-22
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-02
    • 1970-01-01
    相关资源
    最近更新 更多