【问题标题】:Flattening a nested and repeated structure in BigQuery (standard SQL)在 BigQuery 中展平嵌套和重复的结构(标准 SQL)
【发布时间】:2020-12-08 03:43:54
【问题描述】:

有很多关于在 BigQuery 中取消嵌套重复字段的帖子 - 但是,对于这个环境,我几乎尝试了所有我发现的代码变体来展平数据文件。但是,如果不在id 字段中创建空白,我似乎无法生成一个。看来我需要展开嵌套变量?

我正在使用属于公共数据集的 COVID 维度数据集。这是一些产生我的问题的最小代码:

SELECT
   id,
   authors
FROM
   `covid-19-dimensions-ai.data.publications`
CROSS JOIN 
   UNNEST(authors)
LIMIT 1000 

而且,这是运行此查询后的 JSON 结构。一切都被我想要的结构展平了,但我不知道如何填写/避免空白 id 变量。

{
    "id": "pub.1130234899",
    "authors": {
      "first_name": "Eric M",
      "last_name": "Yoshida",
      "initials": null,
      "researcher_id": "ur.01071531321.03",
      "grid_ids": [
        "grid.17091.3e"
      ],
      "corresponding": false,
      "raw_affiliations": [
        "Division of Gastroenterology, University of British Columbia, Vancouver, British Columbia, Canada"
      ],
      "affiliations_address": [
        {
          "grid_id": "grid.17091.3e",
          "city_id": "6173331",
          "state_code": "CA-BC",
          "country_code": "CA",
          "raw_affiliation": "Division of Gastroenterology, University of British Columbia, Vancouver, British Columbia, Canada"
        }
      ]
    }
  }

【问题讨论】:

    标签: google-bigquery


    【解决方案1】:

    查看对原始查询的小修正

    SELECT
       id,
       author
    FROM
       `covid-19-dimensions-ai.data.publications`
    CROSS JOIN 
       UNNEST(authors) author
    LIMIT 1000 
    

    【讨论】:

    • 我复制并粘贴了您的更正,但我仍然会在一组记录中发现偶尔丢失的 id 值。例如,作者将在一行中拥有完整的信息。但是,如果作者有 3 个多个从属关系,则这些从属关系会正确扩展到行,但仅列出第一个从属关系的 id。
    • 什么ID?需要它来解决问题
    • 这些是出版记录。 id 代表一个独特的出版物。 author 是字段和数组的集合。当我取消嵌套时,id 值不会填充到所有行中。
    • 我认为您应该更新您的问题以提供更多详细信息!
    • 也许你认为有问题的屏幕截图,以及你想要的样子
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 2019-02-28
    • 2013-11-17
    • 2019-01-21
    • 2017-12-15
    • 2014-05-24
    • 2019-01-31
    相关资源
    最近更新 更多