【问题标题】:Specify column mapping when loading JSON into Google BigQuery将 JSON 加载到 Google BigQuery 时指定列映射
【发布时间】:2020-01-27 20:54:42
【问题描述】:

假设我们有以下 JSON 对象:

{"keyA": "1", "keyB": 2}

我们希望将其加载到包含两列的 BigQuery 表中; col_acol_b

如果 JSON 键和列名匹配,我们可以使用,例如,load_table_from_json(在 Python 客户端中)

但是有没有办法指定来自 JSON 键 keyA 的值应该放在 col_a 中,而 keyB 应该放在 col_b 中?

我希望能够在 Python 中执行此操作,但这确实是关于 BigQuery API 的一般问题。

【问题讨论】:

    标签: python json google-bigquery


    【解决方案1】:

    API 不支持列命名。

    您可以使用自动检测

    job_config.autodetect = True
    job_config.source_format = bigquery.SourceFormat.NEWLINE_DELIMITED_JSON
    

    或者您可以加载整个 JSON,然后使用 JSON_EXTRACT 方法从中创建单独的列

    create table `newtable` as
    select json_extract(meta,'$.keyA') as keyA ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-30
      • 2021-01-12
      • 2015-03-12
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      相关资源
      最近更新 更多