gpt4 book ai didi

google-bigquery - 将bigquery数据导出到云存储,整数字段更改为字符串格式,但浮点格式保持数字格式

转载 作者:行者123 更新时间:2023-12-02 20:47:45 25 4
gpt4 key购买 nike

我有这些bigquery字段

views   INTEGER NULLABLE    
comments INTEGER NULLABLE
shares INTEGER NULLABLE
watch_time_minutes FLOAT NULLABLE

观看评论分享watch_time_分钟0 0 1 0.0

我通过BigQuery控制台页面(简称“导出表”)将此bigquery数据导出到云存储(json格式),我得到的是

{"views":"0","comments":"0","shares":"1","watch_time_minutes":0}

请注意,在此 json 记录中,整数字段更改为字符串值, "浏览量":"0","评论":"0","分享数":"1"

但是浮点字段保持数字格式 “watch_time_分钟”:0

Json 中的整数字段应保持数字格式

"views":0,"comments":0,"shares":1

否则,在接下来的过程中,当我对这些应该是整数字段(但在json中不显示为字符串)进行数学运算时,我会遇到问题。

有什么建议吗?

现在,我的一个解决方案是循环访问(数百万行)存储文件并将所有整数字段转换回整数。但它击败了“只需通过一条语句将bigquery表导出到存储”的性能优势。

我有另一个丑陋的解决方案,那就是“将整数字段重新定义为 float ”,但这真的很丑陋,而且以后会导致其他问题。例如我无法将浏览次数显示为 0.0 次。等等

谢谢!

最佳答案

问题跟踪器已多次报告此问题,例如Json exports on BQ is exported incorrectly 。来自对该问题的最后评论:

The reason is that most JSON parsers support only 32-bit integers, while BQ integers have 64 bits. You can use the field types in the result to determine how to parse the JSON, or if you want the JSON to use numbers rather than strings, you can cast the columns in a query to FLOAT (legacy SQL) or FLOAT64 (standard SQL). Note that this option may lose precision, however.

Alternatively, you can use Avro format which supports 64-bit integers.

关于google-bigquery - 将bigquery数据导出到云存储,整数字段更改为字符串格式,但浮点格式保持数字格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43597550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com