BigQuery 下载或导出为 JSON 不考虑类型

Posted

技术标签:

【中文标题】BigQuery 下载或导出为 JSON 不考虑类型【英文标题】:BigQuery downloading or exporting as JSON does not respect types 【发布时间】:2018-06-19 22:23:21 【问题描述】:

我在 BigQuery 中运行的查询:

SELECT 5 as a

运行上述查询并选择另存为表时得到的架构:

当我将查询结果下载为 JSON 时得到的 JSON或在导出表时

"a":"5"

这不应该是:

"a":5

【问题讨论】:

【参考方案1】:

来自Exporting Table Data - Export Limitations:

当您以 JSON 格式导出数据时,INT64(整数)数据类型是 编码为 JSON 字符串以在数据保存时保持 64 位精度 被其他系统读取。

【讨论】:

【参考方案2】:

考虑使用TO_JSON_STRING 函数。 From the documentation,INT64的表示为:

当值在 [-253, 253],这是可以表示的整数范围 无损地作为 IEEE 754 双精度浮点数。价值观 超出此范围的字符串表示为带引号的字符串。[

要使用该函数返回查询结果,可以使用这种形式:

SELECT TO_JSON_STRING(t)
FROM (
  <your query here>
) AS t

【讨论】:

以上是关于BigQuery 下载或导出为 JSON 不考虑类型的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery JSON 导出是不是为列名保留大写/小写?

通过 Google BigQuery API 将查询结果导出为 JSON

BigQuery json 特殊字符 UI 导出问题

Dataproc 笔记本无法导入或导出到 BigQuery:找不到类异常

如何通过GCS将GA360表从Big query导出到雪花作为json文件而不丢失数据?

BigQuery 从 sql 数据的 json 导出加载数据