我有这些bigquery字段
views INTEGER NULLABLE
comments INTEGER NULLABLE
shares INTEGER NULLABLE
watch_time_minutes FLOAT NULLABLE
视图评论分享watch_time_minutes0 0 1 0.0
我通过BigQuery Console Page(简称"导出表"(将这些BigQuery数据导出到云存储(JSON格式(,我得到的是
{"views":"0","comments":"0","shares":"1","watch_time_minutes":0}
在此JSON记录中注意,整数字段更改为字符串值, "视图":" 0","注释":" 0","分享":" 1"
但是浮点场以数字格式保留 " watch_time_minutes":0
JSON中的整数字段应像
一样保持数字格式"views":0,"comments":0,"shares":1
否则,在以下过程中,当我对这些数学操作进行数学操作应该是整数字段(但在JSON中没有显示为字符串(,我会遇到问题。
有建议吗?
现在,我有一个解决方案是我循环循环(数百万行(存储文件,然后将所有整数字段投入到整数中。但是,它击败了性能优势:"只需通过一个语句将BigQuery Table导出到存储中。"
我有另一个丑陋的解决方案,即"重新定义整数字段为float",但这确实很丑陋,以后会引起其他问题。例如,我无法将视图时间显示为0.0时间。等。
谢谢!
这已经在问题跟踪器上报告了几个不同的时间,例如BQ上的JSON出口出口不正确。从有关该问题的最后评论中:
原因是大多数JSON解析器仅支持32位整数, 而BQ整数有64位。您可以使用字段类型 结果确定如何解析JSON,或者是否要JSON 使用数字而不是字符串,您可以在查询中投射列 到float(Legacy SQL(或Float64(标准SQL(。请注意此选项 但是,可能会失去精度。
另外,您可以使用支持64位整数的Avro格式。