【问题标题】:BigQuery: Load JSON object as a stringBigQuery:将 JSON 对象加载为字符串
【发布时间】:2020-03-31 21:37:42
【问题描述】:

我有一个带有 3 个字段的新行分隔 json:其中 2 个是字符串,第三个是 json 对象。这是一个例子:

{"val1":"stringvalue1","val2":"stringvalue2","val3":{"i1":789,"i2":60.0,"i3":8}}

我想直接加载所有 3 个字段为 STRING 的文件。

这里的第三个字段是 "{"i1":789,"i2":60.0,"i3":8}"。

我不知道 val3 中的 JSON 对象将包含多少个字段:每行之间是不同的。有没有办法直接将 JSON 对象转换为字符串?我尝试在架构中将列指定为字符串,但在加载时出现解析错误。

谢谢

【问题讨论】:

  • 您可以期待 val3 中是否有最多字段 - 例如 i10 ?如果是这样,请先创建表并将文件加载到其中。未分配的 i* 将默认为 null

标签: json google-bigquery


【解决方案1】:
  1. 加载为单列 CSV。

    一个。确保将字段分隔符设置为稀有字符,或仅设置为 null (\0)。

  2. 这会将整行加载为单个列。

  3. 解析 BigQuery 中的文本行。可以使用本机 JSON 函数,也可以使用 Javascript。在这种情况下,原生 BigQuery JSON 函数就足够了。

【讨论】:

  • 这是一个 hack,BigQuery 应该将 JSON 对象强制转换为字符串或 RECORD。尤其是与EXTERNAL TABLE 一起使用时
猜你喜欢
  • 2021-03-07
  • 2023-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-27
  • 2020-05-27
  • 1970-01-01
相关资源
最近更新 更多